openapi: 3.0.3 info: { title: Communication API, version: 1.0.0 } servers: [ { url: https://your-domain.com/api/v1 } ] tags: [ { name: Communications } ] security: [ { bearerAuth: [] } ] paths: /communications: get: tags: [Communications] summary: List all communications parameters: - in: query name: page schema: { type: integer, default: 1 } - in: query name: per_page schema: { type: integer, default: 20 } - in: query name: sender_id schema: { type: integer } - in: query name: receiver_id schema: { type: integer } responses: "200": { description: Communications retrieved successfully } /communications/send: post: tags: [Communications] summary: Send a new message requestBody: required: true content: application/json: schema: { $ref: '#/components/schemas/CommunicationSend' } responses: "201": { description: Message sent successfully } "422": { description: Validation error } /communications/conversation: get: tags: [Communications] summary: Get conversation between two users parameters: - in: query name: sender_id required: true schema: { type: integer } - in: query name: receiver_id required: true schema: { type: integer } responses: "200": { description: Conversation retrieved } /communications/{id}: delete: tags: [Communications] summary: Delete a message parameters: - in: path name: id required: true schema: { type: integer } responses: "200": { description: Message deleted successfully } "404": { description: Message not found } components: schemas: CommunicationSend: type: object required: [sender_id, receiver_id, subject, message] properties: sender_id: { type: integer } receiver_id: { type: integer } subject: { type: string } message: { type: string }