post: operationId: getStaffInfo summary: Get staff user detail by ID description: | Returns the full profile of the staff account identified by `staff_id` in the request body. A valid bearer token is required to call this operation. - `status` maps DB values: `ACTIVE` → `active`, `INACTIVE` → `inactive`, `DEACTIVATED` → `deactivated`. - `lock_status` is present only when the account is currently locked (password lock or OTP lock). - `last_login` is `"-"` if the staff has never logged in. tags: [staffManagement] security: - bearerAuth: [] requestBody: required: true content: application/json: schema: $ref: "../../components.yaml#/components/schemas/GetStaffInfoRequest" example: staff_id: "6643f1a2b4c5d60012e34abc" responses: "200": description: Staff detail — DTO returned directly content: application/json: schema: $ref: "../../components.yaml#/components/schemas/GetStaffInfoResponse" example: user_id: "6643f1a2b4c5d60012e34abc" first_name: "Jane" last_name: "Doe" second_last_name: "" username: "nova.jdoe.43" email: "jane.doe@nova.com" phone: "+5219981234567" role: "ADMIN" status: "active" two_fa_status: "VERIFIED" must_change_password: false failed_login_attempts: 0 last_login: "21/05/2026 08:00" created_at: "01/01/2026 09:00" created_by: "6643f1a2b4c5d60012e34001" "400": $ref: "../../components.yaml#/components/responses/Failure"