openapi: 3.0.3 info: { title: Class Preparation API, version: 1.0.0 } servers: [ { url: https://your-domain.com/api/v1 } ] tags: [ { name: Class Preparation } ] security: [ { bearerAuth: [] } ] paths: /class-preparation: get: tags: [Class Preparation] summary: List all class preparation records parameters: - in: query name: page schema: { type: integer, default: 1 } - in: query name: per_page schema: { type: integer, default: 20 } - in: query name: class_id schema: { type: integer } - in: query name: school_year schema: { type: string } responses: "200": { description: Records retrieved successfully } /class-preparation/{class_id}: get: tags: [Class Preparation] summary: Get preparation details for a specific class parameters: - in: path name: class_id required: true schema: { type: integer } responses: "200": { description: Preparation record retrieved } "404": { description: Not found } /class-preparation/calculate: post: tags: [Class Preparation] summary: Calculate required items for a class requestBody: required: true content: application/json: schema: { $ref: '#/components/schemas/PreparationCalculateRequest' } responses: "200": { description: Calculation successful } "422": { description: Validation error } components: schemas: PreparationCalculateRequest: type: object required: [class_id, school_year] properties: class_id: { type: integer } school_year: { type: string }