post: operationId: listStaffUsers summary: List staff users description: | Permission: **ADMIN, OWNER** - Default sort: `full_name ASC`. - Sortable: `full_name`, `created_at`. - `search` resets all filters and sort to default (debounce 500ms or Enter). - Supports infinity loading with `last_object_id`; send empty `statuses` to select "All". - Returns `items: []`, `total: 0` when no data found. tags: [staffManagement] security: - bearerAuth: [] requestBody: required: true content: application/json: schema: $ref: "../../components.yaml#/components/schemas/ListStaffRequest" example: search: "" role: ["ADMIN"] statuses: ["active", "inactive"] sort_by: "full_name" sort_dir: "asc" limit: 20 last_object_id: "" responses: "200": description: Paginated list of staff users — DTO returned directly content: application/json: schema: $ref: "../../components.yaml#/components/schemas/ListStaffResponse" example: items: - user_id: "usr_staff_001" full_name: "Jane Doe" username: "nova.jdoe.43" email: "jane.doe@nova.com" phone: "+5219981234567" role: "ADMIN" status: "active" two_fa_status: "VERIFIED" last_login: "21/05/2026 08:00" created_at: "01/01/2026 09:00" total: 1 limit: 20 has_more: false "400": $ref: "../../components.yaml#/components/responses/Failure"