openapi: 3.0.3
info:
  title: Project API
  description: |
    API specification for the project.
    Update this file BEFORE implementing new endpoints.
  version: 0.1.0

servers:
  - url: http://localhost:3010/api
    description: Local development

# CONFIG: Add your API paths below

paths:
  /health:
    get:
      summary: Health check
      operationId: healthCheck
      tags:
        - System
      responses:
        '200':
          description: Service is healthy
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  timestamp:
                    type: string
                    format: date-time

components:
  schemas:
    # CONFIG: Add your schemas below

    ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          required:
            - message
            - code
          properties:
            message:
              type: string
            code:
              type: string
            details:
              type: array
              items:
                type: object

    SuccessResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
        message:
          type: string

    PaginatedResponse:
      type: object
      required:
        - success
        - data
        - pagination
      properties:
        success:
          type: boolean
          example: true
        data:
          type: array
          items:
            type: object
        pagination:
          type: object
          required:
            - page
            - pageSize
            - totalItems
            - totalPages
          properties:
            page:
              type: integer
            pageSize:
              type: integer
            totalItems:
              type: integer
            totalPages:
              type: integer

  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
