feat: implement filtered and paginated doctor appointments panel with status filtering
This commit is contained in:
+15
-1
@@ -375,7 +375,21 @@ never leak into a clinic. Anyone else gets `403`.
|
||||
### Query Parameters
|
||||
| Param | Type | Required | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| `status` | string | ❌ | Filter: `pending`, `confirmed`, `cancelled`, `completed`, `no_show` |
|
||||
| `status` | string | ❌ | Single-status filter (legacy) |
|
||||
| `statuses` | string[] | ❌ | Repeatable: `statuses=pending&statuses=confirmed` |
|
||||
| `from` | int | ❌ | Unix ts — `slot_start >= from` |
|
||||
| `to` | int | ❌ | Unix ts — `slot_start <= to` |
|
||||
| `q` | string | ❌ | Substring match on patient name / mobile (appointment *and* user fields) |
|
||||
| `service_uuid` | string (UUID) | ❌ | Filter by service item |
|
||||
| `page` | int | ❌ | Default `1` |
|
||||
| `limit` | int | ❌ | Default `20`, max `100` |
|
||||
|
||||
**Two response shapes.** With **none** of `statuses`/`from`/`to`/`q`/`service_uuid`/`page`/`limit`
|
||||
present, the legacy nested-array response below is returned unchanged. With **any** of them
|
||||
present the response is the standard paginated envelope
|
||||
(`{ success, data: [...], meta: { totalRecords, totalPages, currentPage, limit } }`).
|
||||
The doctor dashboard filter bar uses the paginated form, defaulting `statuses` to
|
||||
`pending`, `confirmed`, `following_up`, `salon` (i.e. "not yet visited").
|
||||
|
||||
### Response `200`
|
||||
```json
|
||||
|
||||
Reference in New Issue
Block a user