openapi: 3.0.3 info: { title: Staff API, version: 1.0.0 } servers: [ { url: https://your-domain.com/api/v1 } ] tags: [ { name: Staff } ] security: [ { bearerAuth: [] } ] paths: /staff: get: tags: [Staff] summary: List staff members parameters: - in: query name: page schema: { type: integer, default: 1 } - in: query name: per_page schema: { type: integer, default: 20 } - in: query name: role schema: { type: string } responses: "200": { description: Staff retrieved } post: tags: [Staff] summary: Create staff member requestBody: required: true content: application/json: schema: type: object required: [user_id, active_role] properties: user_id: { type: integer } active_role: { type: string } notes: { type: string } responses: "201": { description: Staff created } /staff/{id}: get: tags: [Staff] summary: Get staff member parameters: - in: path name: id required: true schema: { type: integer } responses: "200": { description: Staff member } "404": { description: Not found } put: tags: [Staff] summary: Update staff member parameters: - in: path name: id required: true schema: { type: integer } requestBody: required: true content: application/json: schema: type: object properties: active_role: { type: string } notes: { type: string } status: { type: string } responses: "200": { description: Staff updated } delete: tags: [Staff] summary: Delete staff member parameters: - in: path name: id required: true schema: { type: integer } responses: "200": { description: Staff deleted }