Contacts list: search, status filter, pagination #33

Closed
opened 2026-10-15 01:18:40 -04:00 by vmanne-poc · 0 comments
Owner

Today: the list shows the newest 500 contacts, with no search and no paging.

Plan

  • GET /projects/:id/contacts accepts:
    • q: matches email, first name or last name, ignoring case
    • status
    • page and pageSize (at most 100)
    • sort (created, email)
    • the response is { items, total, page, pageSize }
  • The Contacts page gets a search box, status filter chips (with counts), page controls, and links to each contact's detail page.
  • Keep the old response shape behind a compatibility flag, or update every caller in the same change.
  • Add a DB index if needed (for example (projectId, email) exists; check how q performs on 100k contacts).
**Today:** the list shows the newest 500 contacts, with no search and no paging. **Plan** - `GET /projects/:id/contacts` accepts: - `q`: matches email, first name or last name, ignoring case - `status` - `page` and `pageSize` (at most 100) - `sort` (created, email) - the response is `{ items, total, page, pageSize }` - The Contacts page gets a search box, status filter chips (with counts), page controls, and links to each contact's detail page. - Keep the old response shape behind a compatibility flag, or update every caller in the same change. - Add a DB index if needed (for example `(projectId, email)` exists; check how `q` performs on 100k contacts).
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
vmanne-poc/Postak#33
No description provided.