openapi: 3.0.3
info:
  title: 'HISENGINE API Documentation'
  description: ''
  version: 1.0.0
servers:
  -
    url: 'http://127.0.0.1:8800'
tags:
  -
    name: Endpoints
    description: ''
  -
    name: 'Master Data'
    description: "\nReference catalog for hospital department types and benchmark areas (m²). Operational hospital departments may link via `departments.master_department_id`.\n\n**Read:** `GET /api/v1/master-data/...` with permission `master_data.view`.\n\n**Write:** `POST|PUT|DELETE /api/v1/admin/master-data/...` requires super admin and `master_data.manage` (no tenant header)."
  -
    name: 'Master Medical Devices'
    description: ''
paths:
  /api/v1/auth/login:
    post:
      summary: ''
      operationId: postApiV1AuthLogin
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'Must be a valid email address.'
                  example: qkunze@example.com
                password:
                  type: string
                  description: ''
                  example: 'O[2UZ5ij-e/dl4m{o,'
                hospital_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the hospitals table.'
                  example: 17
                  nullable: true
              required:
                - email
                - password
      security: []
  /api/v1/auth/refresh:
    post:
      summary: ''
      operationId: postApiV1AuthRefresh
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                refresh_token:
                  type: string
                  description: ''
                  example: consequatur
              required:
                - refresh_token
      security: []
  /api/v1/auth/me:
    get:
      summary: ''
      operationId: getApiV1AuthMe
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/admin/hospitals:
    get:
      summary: ''
      operationId: getApiV1AdminHospitals
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1AdminHospitals
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                slug:
                  type: string
                  description: 'Must match the regex /^[a-z0-9]+(?:-[a-z0-9]+)*$/. Must not be greater than 128 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
                settings:
                  type: object
                  description: ''
                  example: null
                  properties:
                    default_sla_hours:
                      type: integer
                      description: 'Must be at least 1. Must not be greater than 8760.'
                      example: 16
                      nullable: true
                    timezone:
                      type: string
                      description: 'Must not be greater than 64 characters.'
                      example: Indian/Cocos
                      nullable: true
                  nullable: true
                branch_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: bajwbpilpmufinllwloau
                branch_code:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: ydlsmsjuryvojcybzvrby
                  nullable: true
                department_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ickznkygloigmkwxphlva
                  nullable: true
                department_code:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: zjrcnfbaqywuxhgjjmzux
                  nullable: true
                admin_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: jubqouzswiwxtrkimfcat
                admin_email:
                  type: string
                  description: 'Must be a valid email address. Must not be greater than 255 characters.'
                  example: tromp.leanne@example.net
                admin_password:
                  type: string
                  description: 'Must be at least 8 characters.'
                  example: mrazsroyjpxmqesedyghenqcopwvownkbamlnfngefbeilfzsyuxoezbdtabptcyyerevrljcbw
              required:
                - name
                - branch_name
                - admin_name
                - admin_email
                - admin_password
      security: []
  /api/v1/master-data/service-departments:
    get:
      summary: ''
      operationId: getApiV1MasterDataServiceDepartments
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/service-departments/{serviceDepartment_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataServiceDepartmentsServiceDepartment_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: serviceDepartment_id
        description: 'The ID of the serviceDepartment.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/specialties:
    get:
      summary: ''
      operationId: getApiV1MasterDataSpecialties
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/specialties/{specialty_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataSpecialtiesSpecialty_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: specialty_id
        description: 'The ID of the specialty.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/services:
    get:
      summary: ''
      operationId: getApiV1MasterDataServices
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/services/{service_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataServicesService_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: service_id
        description: 'The ID of the service.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/classifications:
    get:
      summary: ''
      operationId: getApiV1MasterDataClassifications
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/classifications/{classification_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataClassificationsClassification_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: classification_id
        description: 'The ID of the classification.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/leakage-types:
    get:
      summary: ''
      operationId: getApiV1MasterDataLeakageTypes
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/leakage-types/{leakage_type_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataLeakageTypesLeakage_type_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: leakage_type_id
        description: 'The ID of the leakage type.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/policy-categories:
    get:
      summary: ''
      operationId: getApiV1MasterDataPolicyCategories
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/policy-categories/{policy_category_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataPolicyCategoriesPolicy_category_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: policy_category_id
        description: 'The ID of the policy category.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/action-owners:
    get:
      summary: ''
      operationId: getApiV1MasterDataActionOwners
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/action-owners/{action_owner_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataActionOwnersAction_owner_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: action_owner_id
        description: 'The ID of the action owner.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/sop-policies:
    get:
      summary: ''
      operationId: getApiV1MasterDataSopPolicies
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/sop-policies/{sop_policy_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataSopPoliciesSop_policy_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: sop_policy_id
        description: 'The ID of the sop policy.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/supply-categories:
    get:
      summary: ''
      operationId: getApiV1MasterDataSupplyCategories
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/supply-categories/{supplyCategory_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataSupplyCategoriesSupplyCategory_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: supplyCategory_id
        description: 'The ID of the supplyCategory.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/supply-subcategories:
    get:
      summary: ''
      operationId: getApiV1MasterDataSupplySubcategories
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/supply-subcategories/{supplySubcategory_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataSupplySubcategoriesSupplySubcategory_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: supplySubcategory_id
        description: 'The ID of the supplySubcategory.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/supply-catalog-items:
    get:
      summary: ''
      operationId: getApiV1MasterDataSupplyCatalogItems
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/master-data/supply-catalog-items/{supplyCatalogItem_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataSupplyCatalogItemsSupplyCatalogItem_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: supplyCatalogItem_id
        description: 'The ID of the supplyCatalogItem.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/service-departments:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataServiceDepartments
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 16 characters.'
                  example: qxbajwbpilpmu
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name_ar
                - name_en
      security: []
  '/api/v1/admin/master-data/service-departments/{serviceDepartment_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataServiceDepartmentsServiceDepartment_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 16 characters.'
                  example: qxbajwbpilpmu
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataServiceDepartmentsServiceDepartment_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: serviceDepartment_id
        description: 'The ID of the serviceDepartment.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/specialties:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataSpecialties
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name_ar
                - name_en
      security: []
  '/api/v1/admin/master-data/specialties/{specialty_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataSpecialtiesSpecialty_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataSpecialtiesSpecialty_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: specialty_id
        description: 'The ID of the specialty.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/services:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataServices
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                service_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the service_departments table.'
                  example: 17
                specialty_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the specialties table.'
                  example: 17
                service_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 64 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: xbajwbpilpmufinllwloa
                service_group:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: uydlsmsjuryvojcybzvrb
                  nullable: true
                complexity:
                  type: integer
                  description: 'Must be at least 1. Must not be greater than 5.'
                  example: 5
                benchmark_unit_cost:
                  type: number
                  description: 'Must be at least 0.'
                  example: 29
                  nullable: true
                benchmark_unit_revenue:
                  type: number
                  description: 'Must be at least 0.'
                  example: 7
                  nullable: true
                benchmark_unit_margin_pct:
                  type: number
                  description: 'Must be at least 0. Must not be greater than 100.'
                  example: 11
                  nullable: true
                quality_weight:
                  type: number
                  description: 'Must be at least 0.'
                  example: 88
                  nullable: true
                duration_minutes:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 48
                  nullable: true
                care_setting:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: kygloigmkwxphlvazjrcn
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - service_department_id
                - specialty_id
                - service_code
                - name_ar
                - name_en
                - complexity
      security: []
  '/api/v1/admin/master-data/services/{service_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataServicesService_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                service_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the service_departments table.'
                  example: 17
                specialty_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the specialties table.'
                  example: 17
                service_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 64 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: xbajwbpilpmufinllwloa
                service_group:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: uydlsmsjuryvojcybzvrb
                  nullable: true
                complexity:
                  type: integer
                  description: 'Must be at least 1. Must not be greater than 5.'
                  example: 5
                benchmark_unit_cost:
                  type: number
                  description: 'Must be at least 0.'
                  example: 29
                  nullable: true
                benchmark_unit_revenue:
                  type: number
                  description: 'Must be at least 0.'
                  example: 7
                  nullable: true
                benchmark_unit_margin_pct:
                  type: number
                  description: 'Must be at least 0. Must not be greater than 100.'
                  example: 11
                  nullable: true
                quality_weight:
                  type: number
                  description: 'Must be at least 0.'
                  example: 88
                  nullable: true
                duration_minutes:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 48
                  nullable: true
                care_setting:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: kygloigmkwxphlvazjrcn
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataServicesService_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: service_id
        description: 'The ID of the service.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/classifications:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataClassifications
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                profit_gap_threshold_min:
                  type: number
                  description: 'Must be between -100 and 100.'
                  example: -99
                profit_gap_threshold_max:
                  type: number
                  description: 'Must be between -100 and 100.'
                  example: -99
                color_code:
                  type: string
                  description: 'Must match the regex /^#[0-9A-Fa-f]{6}$/.'
                  example: '#4CD4ab'
                description:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: 'Minus voluptatem quisquam quibusdam sed.'
                  nullable: true
              required:
                - name_ar
                - name_en
                - profit_gap_threshold_min
                - profit_gap_threshold_max
                - color_code
      security: []
  '/api/v1/admin/master-data/classifications/{classification_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataClassificationsClassification_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                profit_gap_threshold_min:
                  type: number
                  description: 'Must be between -100 and 100.'
                  example: -99
                profit_gap_threshold_max:
                  type: number
                  description: 'Must be between -100 and 100.'
                  example: -99
                color_code:
                  type: string
                  description: 'Must match the regex /^#[0-9A-Fa-f]{6}$/.'
                  example: '#4CD4ab'
                description:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: 'Minus voluptatem quisquam quibusdam sed.'
                  nullable: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataClassificationsClassification_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: classification_id
        description: 'The ID of the classification.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/leakage-types:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataLeakageTypes
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                category:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: qxbajwbpilpmufinllwlo
                default_weight:
                  type: number
                  description: 'Must be at least 0.'
                  example: 2
                is_active:
                  type: boolean
                  description: ''
                  example: false
              required:
                - name_ar
                - name_en
                - category
                - default_weight
      security: []
  '/api/v1/admin/master-data/leakage-types/{leakage_type_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataLeakageTypesLeakage_type_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                category:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: qxbajwbpilpmufinllwlo
                default_weight:
                  type: number
                  description: 'Must be at least 0.'
                  example: 2
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataLeakageTypesLeakage_type_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: leakage_type_id
        description: 'The ID of the leakage type.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/policy-categories:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataPolicyCategories
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                description:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: 'Necessitatibus architecto aut consequatur debitis et id.'
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name_ar
                - name_en
      security: []
  '/api/v1/admin/master-data/policy-categories/{policy_category_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataPolicyCategoriesPolicy_category_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                description:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: 'Necessitatibus architecto aut consequatur debitis et id.'
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataPolicyCategoriesPolicy_category_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: policy_category_id
        description: 'The ID of the policy category.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/action-owners:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataActionOwners
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                hierarchy_level:
                  type: integer
                  description: 'Must be at least 0. Must not be greater than 1000.'
                  example: 16
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name_ar
                - name_en
                - hierarchy_level
      security: []
  '/api/v1/admin/master-data/action-owners/{action_owner_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataActionOwnersAction_owner_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                hierarchy_level:
                  type: integer
                  description: 'Must be at least 0. Must not be greater than 1000.'
                  example: 16
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataActionOwnersAction_owner_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: action_owner_id
        description: 'The ID of the action owner.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/sop-policies:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataSopPolicies
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                policy_category_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the policy_categories table.'
                  example: 17
                action_owner_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the action_owners table.'
                  example: 17
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                policy_code:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: xbajwbpilpmufinllwloa
                priority:
                  type: string
                  description: ''
                  example: medium
                  enum:
                    - low
                    - medium
                    - high
                gap_to_best_practice:
                  type: integer
                  description: 'Must be at least 1. Must not be greater than 5.'
                  example: 5
                linked_process_family:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ydlsmsjuryvojcybzvrby
                implementation_notes:
                  type: string
                  description: 'Must not be greater than 10000 characters.'
                  example: ickznkygloigmkwxphlva
                is_active:
                  type: boolean
                  description: ''
                  example: false
              required:
                - policy_category_id
                - action_owner_id
                - name_ar
                - name_en
                - policy_code
                - priority
                - gap_to_best_practice
                - linked_process_family
                - implementation_notes
      security: []
  '/api/v1/admin/master-data/sop-policies/{sop_policy_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataSopPoliciesSop_policy_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                policy_category_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the policy_categories table.'
                  example: 17
                action_owner_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the action_owners table.'
                  example: 17
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                policy_code:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: xbajwbpilpmufinllwloa
                priority:
                  type: string
                  description: ''
                  example: medium
                  enum:
                    - low
                    - medium
                    - high
                gap_to_best_practice:
                  type: integer
                  description: 'Must be at least 1. Must not be greater than 5.'
                  example: 5
                linked_process_family:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ydlsmsjuryvojcybzvrby
                implementation_notes:
                  type: string
                  description: 'Must not be greater than 10000 characters.'
                  example: ickznkygloigmkwxphlva
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataSopPoliciesSop_policy_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: sop_policy_id
        description: 'The ID of the sop policy.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/supply-categories:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataSupplyCategories
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 32 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name_ar
                - name_en
      security: []
  '/api/v1/admin/master-data/supply-categories/{supplyCategory_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataSupplyCategoriesSupplyCategory_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 32 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataSupplyCategoriesSupplyCategory_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: supplyCategory_id
        description: 'The ID of the supplyCategory.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/supply-subcategories:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataSupplySubcategories
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                supply_category_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the supply_categories table.'
                  example: 17
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 32 characters.'
                  example: xbajwbpilpmufinllwloa
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
              required:
                - supply_category_id
                - name_ar
                - name_en
      security: []
  '/api/v1/admin/master-data/supply-subcategories/{supplySubcategory_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataSupplySubcategoriesSupplySubcategory_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                supply_category_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the supply_categories table.'
                  example: 17
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 32 characters.'
                  example: xbajwbpilpmufinllwloa
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataSupplySubcategoriesSupplySubcategory_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: supplySubcategory_id
        description: 'The ID of the supplySubcategory.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/supply-catalog-items:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataSupplyCatalogItems
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                supply_subcategory_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the supply_subcategories table.'
                  example: 17
                linked_service_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the service_departments table.'
                  example: 17
                  nullable: true
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                item_code:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: xbajwbpilpmufinllwloa
                  nullable: true
                unit:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: uydlsmsjuryvojcybzvrb
                  nullable: true
                benchmark_unit_cost:
                  type: number
                  description: 'Must be at least 0.'
                  example: 84
                  nullable: true
                min_qty:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 29
                  nullable: true
                max_qty:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 7
                  nullable: true
                criticality:
                  type: string
                  description: 'Must not be greater than 16 characters.'
                  example: kznkygloigmkw
                  nullable: true
                vendor_type:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: xphlvazjrcnfbaqywuxhg
                  nullable: true
                lead_days:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 34
                  nullable: true
                notes:
                  type: string
                  description: 'Must not be greater than 2000 characters.'
                  example: jmzuxjubqouzswiwxtrki
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
              required:
                - supply_subcategory_id
                - name_ar
                - name_en
      security: []
  '/api/v1/admin/master-data/supply-catalog-items/{supplyCatalogItem_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataSupplyCatalogItemsSupplyCatalogItem_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                supply_subcategory_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the supply_subcategories table.'
                  example: 17
                linked_service_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the service_departments table.'
                  example: 17
                  nullable: true
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                item_code:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: xbajwbpilpmufinllwloa
                  nullable: true
                unit:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: uydlsmsjuryvojcybzvrb
                  nullable: true
                benchmark_unit_cost:
                  type: number
                  description: 'Must be at least 0.'
                  example: 84
                  nullable: true
                min_qty:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 29
                  nullable: true
                max_qty:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 7
                  nullable: true
                criticality:
                  type: string
                  description: 'Must not be greater than 16 characters.'
                  example: kznkygloigmkw
                  nullable: true
                vendor_type:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: xphlvazjrcnfbaqywuxhg
                  nullable: true
                lead_days:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 34
                  nullable: true
                notes:
                  type: string
                  description: 'Must not be greater than 2000 characters.'
                  example: jmzuxjubqouzswiwxtrki
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataSupplyCatalogItemsSupplyCatalogItem_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: supplyCatalogItem_id
        description: 'The ID of the supplyCatalogItem.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/auth/logout:
    post:
      summary: ''
      operationId: postApiV1AuthLogout
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                refresh_token:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
      security: []
  /api/v1/issue-statuses:
    get:
      summary: ''
      operationId: getApiV1IssueStatuses
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/issue-priorities:
    get:
      summary: ''
      operationId: getApiV1IssuePriorities
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/departments/import-from-master:
    post:
      summary: 'Create operational departments for this hospital from the master-departments catalog.'
      operationId: createOperationalDepartmentsForThisHospitalFromTheMasterDepartmentsCatalog
      description: 'Skips master rows that already have a linked department in this hospital.'
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                master_department_ids:
                  type: array
                  description: 'The <code>id</code> of an existing record in the master_departments table.'
                  example:
                    - 17
                  items:
                    type: integer
                active_only:
                  type: boolean
                  description: ''
                  example: true
                name_locale:
                  type: string
                  description: ''
                  example: en
                  enum:
                    - en
                    - ar
      security: []
  /api/v1/departments:
    get:
      summary: ''
      operationId: getApiV1Departments
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1Departments
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                code:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 16 characters.'
                  example: qxbajwbpilpmu
                  nullable: true
                branch_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the branches table.'
                  example: 17
                  nullable: true
                master_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the master_departments table.'
                  example: 17
                  nullable: true
                actual_area_m2:
                  type: number
                  description: 'Must be at least 0.'
                  example: 45
                  nullable: true
              required:
                - name
      security: []
  '/api/v1/departments/{id}':
    put:
      summary: ''
      operationId: putApiV1DepartmentsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                code:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 16 characters.'
                  example: qxbajwbpilpmu
                  nullable: true
                branch_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the branches table.'
                  example: 17
                  nullable: true
                master_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the master_departments table.'
                  example: 17
                  nullable: true
                actual_area_m2:
                  type: number
                  description: 'Must be at least 0.'
                  example: 45
                  nullable: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1DepartmentsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the department.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/catalog/master-departments:
    get:
      summary: ''
      operationId: getApiV1CatalogMasterDepartments
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/catalog/master-units:
    get:
      summary: ''
      operationId: getApiV1CatalogMasterUnits
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  '/api/v1/departments/{department_id}/units':
    get:
      summary: ''
      operationId: getApiV1DepartmentsDepartment_idUnits
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1DepartmentsDepartment_idUnits
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                master_unit_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the master_units table.'
                  example: 17
                is_enabled:
                  type: boolean
                  description: ''
                  example: false
                actual_area_m2:
                  type: number
                  description: 'Must be at least 0.'
                  example: 45
                  nullable: true
                notes:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: qeopfuudtdsufvyvddqam
                  nullable: true
              required:
                - master_unit_id
      security: []
    parameters:
      -
        in: path
        name: department_id
        description: 'The ID of the department.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/v1/departments/{department_id}/units/{department_unit_id}':
    put:
      summary: ''
      operationId: putApiV1DepartmentsDepartment_idUnitsDepartment_unit_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                master_unit_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the master_units table.'
                  example: 17
                is_enabled:
                  type: boolean
                  description: ''
                  example: true
                actual_area_m2:
                  type: number
                  description: 'Must be at least 0.'
                  example: 45
                  nullable: true
                notes:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: qeopfuudtdsufvyvddqam
                  nullable: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1DepartmentsDepartment_idUnitsDepartment_unit_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: department_id
        description: 'The ID of the department.'
        example: 1
        required: true
        schema:
          type: integer
      -
        in: path
        name: department_unit_id
        description: 'The ID of the department unit.'
        example: consequatur
        required: true
        schema:
          type: string
  '/api/v1/hospitals/{hospital_id}/units':
    get:
      summary: ''
      operationId: getApiV1HospitalsHospital_idUnits
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1HospitalsHospital_idUnits
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 73
                units:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      master_unit_id:
                        type: integer
                        description: 'The <code>id</code> of an existing record in the master_units table.'
                        example: 17
                      rooms:
                        type: integer
                        description: 'Must be at least 0. Must not be greater than 100000.'
                        example: 13
                      beds:
                        type: integer
                        description: 'Must be at least 0. Must not be greater than 100000.'
                        example: 16
                      target_occupancy_pct:
                        type: number
                        description: 'Must be at least 0. Must not be greater than 100.'
                        example: 5
                      current_occupancy_pct:
                        type: number
                        description: 'Must be at least 0. Must not be greater than 100.'
                        example: 14
                      avg_los_days:
                        type: number
                        description: 'Must be at least 0.'
                        example: 55
                    required:
                      - master_unit_id
                      - rooms
                      - beds
                      - target_occupancy_pct
                      - current_occupancy_pct
                      - avg_los_days
              required:
                - version
                - units
      security: []
    parameters:
      -
        in: path
        name: hospital_id
        description: 'The ID of the hospital.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/v1/hospitals/{hospital_id}/departments':
    get:
      summary: ''
      operationId: getApiV1HospitalsHospital_idDepartments
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1HospitalsHospital_idDepartments
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 73
                departments:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      master_unit_id:
                        type: integer
                        description: 'The <code>id</code> of an existing record in the master_units table.'
                        example: 17
                      specialties:
                        type: array
                        description: ''
                        example:
                          - []
                        items:
                          type: object
                          properties:
                            specialty_id:
                              type: integer
                              description: 'The <code>id</code> of an existing record in the specialties table.'
                              example: 17
                            clinic_rooms:
                              type: integer
                              description: 'Must be at least 0. Must not be greater than 100000.'
                              example: 13
                            sessions_per_week:
                              type: integer
                              description: 'Must be at least 0. Must not be greater than 10000.'
                              example: 16
                            avg_visits_per_room_per_day:
                              type: number
                              description: 'Must be at least 0.'
                              example: 16
                            current_wait_days:
                              type: integer
                              description: 'Must be at least 0. Must not be greater than 10000.'
                              example: 14
                          required:
                            - specialty_id
                            - clinic_rooms
                            - sessions_per_week
                            - avg_visits_per_room_per_day
                            - current_wait_days
                    required:
                      - master_unit_id
                      - specialties
              required:
                - version
                - departments
      security: []
    parameters:
      -
        in: path
        name: hospital_id
        description: 'The ID of the hospital.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/v1/hospital/master-units/{master_unit_id}/workflow':
    get:
      summary: ''
      operationId: getApiV1HospitalMasterUnitsMaster_unit_idWorkflow
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    put:
      summary: ''
      operationId: putApiV1HospitalMasterUnitsMaster_unit_idWorkflow
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                workflow:
                  type: object
                  description: ''
                  example: []
                  properties:
                    code:
                      type: string
                      description: 'Must not be greater than 32 characters.'
                      example: vmqeopfuudtdsufvyvddq
                    name_en:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: amniihfqcoynlazghdtqt
                    name_ar:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: qxbajwbpilpmufinllwlo
                      nullable: true
                    steps:
                      type: array
                      description: 'Must have at least 1 items.'
                      example:
                        - []
                      items:
                        type: object
                        properties:
                          step_name_en:
                            type: string
                            description: 'Must not be greater than 255 characters.'
                            example: vmqeopfuudtdsufvyvddq
                          step_name_ar:
                            type: string
                            description: 'Must not be greater than 255 characters.'
                            example: amniihfqcoynlazghdtqt
                            nullable: true
                          step_type:
                            type: string
                            description: 'Must not be greater than 64 characters.'
                            example: qxbajwbpilpmufinllwlo
                            nullable: true
                          is_required:
                            type: boolean
                            description: ''
                            example: false
                          requires_master_department_id:
                            type: integer
                            description: 'The <code>id</code> of an existing record in the master_departments table.'
                            example: 17
                            nullable: true
                          requires_master_unit_id:
                            type: integer
                            description: 'The <code>id</code> of an existing record in the master_units table.'
                            example: 17
                            nullable: true
                        required:
                          - step_name_en
                  required:
                    - code
                    - name_en
                    - steps
              required:
                - workflow
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1HospitalMasterUnitsMaster_unit_idWorkflow
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: master_unit_id
        description: 'The ID of the master unit.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/issue-categories:
    get:
      summary: ''
      operationId: getApiV1IssueCategories
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1IssueCategories
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                module_type:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                slug:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                parent_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_categories table.'
                  example: 17
                  nullable: true
              required:
                - module_type
                - name
      security: []
  '/api/v1/issue-categories/{issueCategory_id}':
    get:
      summary: ''
      operationId: getApiV1IssueCategoriesIssueCategory_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    put:
      summary: ''
      operationId: putApiV1IssueCategoriesIssueCategory_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                module_type:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                slug:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                parent_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_categories table.'
                  example: 17
                  nullable: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1IssueCategoriesIssueCategory_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: issueCategory_id
        description: 'The ID of the issueCategory.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/issue-tags:
    get:
      summary: ''
      operationId: getApiV1IssueTags
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1IssueTags
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                slug:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
              required:
                - name
      security: []
  '/api/v1/issue-tags/{issueTag_id}':
    get:
      summary: ''
      operationId: getApiV1IssueTagsIssueTag_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    put:
      summary: ''
      operationId: putApiV1IssueTagsIssueTag_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                slug:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1IssueTagsIssueTag_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: issueTag_id
        description: 'The ID of the issueTag.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/patients:
    get:
      summary: ''
      operationId: getApiV1Patients
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1Patients
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                mrn:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
                first_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                last_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                date_of_birth:
                  type: string
                  description: 'Must be a valid date.'
                  example: '2026-04-18T19:18:09'
                  nullable: true
                branch_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the branches table.'
                  example: 17
                  nullable: true
                notes:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
              required:
                - first_name
                - last_name
      security: []
  '/api/v1/patients/{patient_id}':
    put:
      summary: ''
      operationId: putApiV1PatientsPatient_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                mrn:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
                first_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                last_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                date_of_birth:
                  type: string
                  description: 'Must be a valid date.'
                  example: '2026-04-18T19:18:09'
                  nullable: true
                branch_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the branches table.'
                  example: 17
                  nullable: true
                notes:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
      security: []
    parameters:
      -
        in: path
        name: patient_id
        description: 'The ID of the patient.'
        example: 17
        required: true
        schema:
          type: integer
  /api/v1/issues:
    get:
      summary: ''
      operationId: getApiV1Issues
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1Issues
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                issueable_type:
                  type: string
                  description: ''
                  example: consequatur
                issueable_id:
                  type: integer
                  description: ''
                  example: 17
                category_id:
                  type: integer
                  description: ''
                  example: 17
                priority_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_priorities table.'
                  example: 17
                status_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_statuses table.'
                  example: 17
                  nullable: true
                title:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                description:
                  type: string
                  description: ''
                  example: 'Dolores dolorum amet iste laborum eius est dolor.'
                  nullable: true
                branch_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the branches table.'
                  example: 17
                  nullable: true
                department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the departments table.'
                  example: 17
                  nullable: true
                assigned_to:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the users table.'
                  example: 17
                  nullable: true
                tag_ids:
                  type: array
                  description: ''
                  example:
                    - 17
                  items:
                    type: integer
              required:
                - issueable_type
                - issueable_id
                - category_id
                - priority_id
                - title
      security: []
  '/api/v1/issues/{issue_id}':
    get:
      summary: ''
      operationId: getApiV1IssuesIssue_id
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\Issue] 17'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\Issue] 17'
      tags:
        - Endpoints
      security: []
    put:
      summary: ''
      operationId: putApiV1IssuesIssue_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                description:
                  type: string
                  description: ''
                  example: 'Dolores dolorum amet iste laborum eius est dolor.'
                  nullable: true
                branch_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the branches table.'
                  example: 17
                  nullable: true
                department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the departments table.'
                  example: 17
                  nullable: true
                category_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_categories table.'
                  example: 17
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1IssuesIssue_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/assign':
    post:
      summary: ''
      operationId: postApiV1IssuesIssue_idAssign
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                assigned_to:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the users table.'
                  example: 17
                  nullable: true
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/status':
    post:
      summary: ''
      operationId: postApiV1IssuesIssue_idStatus
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_statuses table.'
                  example: 17
              required:
                - status_id
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/priority':
    post:
      summary: ''
      operationId: postApiV1IssuesIssue_idPriority
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                priority_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the issue_priorities table.'
                  example: 17
              required:
                - priority_id
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/comments':
    get:
      summary: ''
      operationId: getApiV1IssuesIssue_idComments
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\Issue] 17'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\Issue] 17'
      tags:
        - Endpoints
      security: []
    post:
      summary: ''
      operationId: postApiV1IssuesIssue_idComments
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                body:
                  type: string
                  description: ''
                  example: consequatur
                is_internal:
                  type: boolean
                  description: ''
                  example: true
              required:
                - body
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/attachments':
    post:
      summary: ''
      operationId: postApiV1IssuesIssue_idAttachments
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: 'Must be a file. Must not be greater than 10240 kilobytes.'
              required:
                - file
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/solutions':
    post:
      summary: ''
      operationId: postApiV1IssuesIssue_idSolutions
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                summary:
                  type: string
                  description: ''
                  example: consequatur
                actions_taken:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
              required:
                - summary
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  '/api/v1/issues/{issue_id}/timeline':
    get:
      summary: ''
      operationId: getApiV1IssuesIssue_idTimeline
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\Issue] 17'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\Issue] 17'
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: issue_id
        description: 'The ID of the issue.'
        example: 17
        required: true
        schema:
          type: integer
  /api/v1/reports/summary:
    get:
      summary: ''
      operationId: getApiV1ReportsSummary
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/reports/trends:
    get:
      summary: ''
      operationId: getApiV1ReportsTrends
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/reports/top-categories:
    get:
      summary: ''
      operationId: getApiV1ReportsTopCategories
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/reports/export:
    post:
      summary: ''
      operationId: postApiV1ReportsExport
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
  '/api/v1/reports/exports/{reportExport_id}':
    get:
      summary: ''
      operationId: getApiV1ReportsExportsReportExport_id
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\ReportExport] 17'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\ReportExport] 17'
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: reportExport_id
        description: 'The ID of the reportExport.'
        example: 17
        required: true
        schema:
          type: integer
  /api/v1/admin/users/meta:
    get:
      summary: ''
      operationId: getApiV1AdminUsersMeta
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/admin/users:
    get:
      summary: ''
      operationId: getApiV1AdminUsers
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                  nullable: true
                role:
                  type: string
                  description: 'Must not be greater than 125 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
                status:
                  type: string
                  description: ''
                  example: disabled
                  enum:
                    - active
                    - disabled
                  nullable: true
                page:
                  type: integer
                  description: 'Must be at least 1.'
                  example: 56
                  nullable: true
                per_page:
                  type: integer
                  description: 'Must be at least 1. Must not be greater than 100.'
                  example: 23
                  nullable: true
      security: []
    post:
      summary: ''
      operationId: postApiV1AdminUsers
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                email:
                  type: string
                  description: 'Must be a valid email address. Must not be greater than 255 characters.'
                  example: kunde.eloisa@example.com
                password:
                  type: string
                  description: 'Must be at least 8 characters.'
                  example: '4[*UyPJ"}6'
                role:
                  type: string
                  description: 'Must not be greater than 125 characters.'
                  example: hdtqtqxbajwbpilpmufin
                disabled:
                  type: boolean
                  description: ''
                  example: false
              required:
                - name
                - email
                - password
      security: []
  '/api/v1/admin/users/{user_id}':
    put:
      summary: ''
      operationId: putApiV1AdminUsersUser_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                email:
                  type: string
                  description: 'Must be a valid email address. Must not be greater than 255 characters.'
                  example: kunde.eloisa@example.com
                role:
                  type: string
                  description: 'Must not be greater than 125 characters.'
                  example: hfqcoynlazghdtqtqxbaj
                disabled:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name
                - email
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminUsersUser_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: user_id
        description: 'The ID of the user.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/users/export:
    get:
      summary: ''
      operationId: getApiV1AdminUsersExport
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                  nullable: true
                role:
                  type: string
                  description: 'Must not be greater than 125 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
                status:
                  type: string
                  description: ''
                  example: disabled
                  enum:
                    - active
                    - disabled
                  nullable: true
      security: []
  /api/v1/admin/settings/hospital:
    get:
      summary: ''
      operationId: getApiV1AdminSettingsHospital
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
    put:
      summary: ''
      operationId: putApiV1AdminSettingsHospital
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                official_name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                  nullable: true
                type_classification:
                  type: string
                  description: ''
                  example: Primary
                  enum:
                    - Primary
                    - Secondary
                    - 'Tertiary General Hospital'
                    - 'Specialty Hospital'
                    - 'Teaching Hospital'
                  nullable: true
                region:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                ownership_type:
                  type: string
                  description: ''
                  example: Public
                  enum:
                    - Public
                    - Private
                    - PPP
                  nullable: true
                total_beds:
                  type: integer
                  description: 'Must be at least 0.'
                  example: 2
                  nullable: true
                case_mix:
                  type: array
                  description: 'Must be at least 0. Must not be greater than 100.'
                  example:
                    - 21
                  items:
                    type: number
                settings:
                  type: object
                  description: ''
                  example: []
                  properties:
                    default_sla_hours:
                      type: integer
                      description: 'Must be at least 1. Must not be greater than 8760.'
                      example: 21
                      nullable: true
                    timezone:
                      type: string
                      description: 'Must not be greater than 64 characters.'
                      example: Asia/Almaty
                      nullable: true
              required:
                - name
                - settings
      security: []
  /api/v1/admin/hospital/export/json:
    get:
      summary: ''
      operationId: getApiV1AdminHospitalExportJson
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/admin/hospital/export/csv:
    get:
      summary: ''
      operationId: getApiV1AdminHospitalExportCsv
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      security: []
  /api/v1/admin/hospital/import:
    post:
      summary: ''
      operationId: postApiV1AdminHospitalImport
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: 'Must be a file.'
              required:
                - file
      security: []
  /api/v1/admin/pages:
    get:
      summary: ''
      operationId: getApiV1AdminPages
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                  nullable: true
      security: []
    post:
      summary: ''
      operationId: postApiV1AdminPages
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                slug:
                  type: string
                  description: 'Must not be greater than 160 characters.'
                  example: amniihfqcoynlazghdtqt
                status:
                  type: string
                  description: ''
                  example: published
                  enum:
                    - draft
                    - published
                body:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
              required:
                - title
                - slug
                - status
      security: []
  '/api/v1/admin/pages/{page_id}':
    put:
      summary: ''
      operationId: putApiV1AdminPagesPage_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                slug:
                  type: string
                  description: 'Must not be greater than 160 characters.'
                  example: amniihfqcoynlazghdtqt
                status:
                  type: string
                  description: ''
                  example: published
                  enum:
                    - draft
                    - published
                body:
                  type: string
                  description: ''
                  example: consequatur
                  nullable: true
              required:
                - title
                - slug
                - status
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminPagesPage_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: page_id
        description: 'The ID of the page.'
        example: 17
        required: true
        schema:
          type: integer
  /api/v1/admin/pages/export:
    get:
      summary: ''
      operationId: getApiV1AdminPagesExport
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                  nullable: true
      security: []
  /api/v1/master-data/master-departments:
    get:
      summary: ''
      operationId: getApiV1MasterDataMasterDepartments
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - 'Master Data'
      security: []
  '/api/v1/master-data/master-departments/{masterDepartment_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataMasterDepartmentsMasterDepartment_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - 'Master Data'
      security: []
    parameters:
      -
        in: path
        name: masterDepartment_id
        description: 'The ID of the masterDepartment.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/master-data/master-units:
    get:
      summary: ''
      operationId: getApiV1MasterDataMasterUnits
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - 'Master Data'
      security: []
  '/api/v1/master-data/master-units/{master_unit_id}':
    get:
      summary: ''
      operationId: getApiV1MasterDataMasterUnitsMaster_unit_id
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - 'Master Data'
      security: []
    parameters:
      -
        in: path
        name: master_unit_id
        description: 'The ID of the master unit.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/master-departments:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataMasterDepartments
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Data'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                service_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the service_departments table.'
                  example: 17
                  nullable: true
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 16 characters.'
                  example: xbajwbpilpmuf
                  nullable: true
                benchmark_area_m2:
                  type: number
                  description: 'Must be at least 0.01.'
                  example: 28
                std_m2_per_unit:
                  type: number
                  description: 'Must be at least 0.01.'
                  example: 48
                  nullable: true
                min_core_m2:
                  type: number
                  description: 'Must be at least 0.'
                  example: 39
                  nullable: true
                driver_description:
                  type: string
                  description: 'Must not be greater than 2000 characters.'
                  example: lwloauydlsmsjuryvojcy
                  nullable: true
                reference_driver_units:
                  type: integer
                  description: 'Must be at least 0. Must not be greater than 999999.'
                  example: 2
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
              required:
                - name_ar
                - name_en
                - benchmark_area_m2
      security: []
  '/api/v1/admin/master-data/master-departments/{masterDepartment_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataMasterDepartmentsMasterDepartment_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Data'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                service_department_id:
                  type: integer
                  description: 'The <code>id</code> of an existing record in the service_departments table.'
                  example: 17
                  nullable: true
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mqeopfuudtdsufvyvddqa
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: mniihfqcoynlazghdtqtq
                short_code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 16 characters.'
                  example: xbajwbpilpmuf
                  nullable: true
                benchmark_area_m2:
                  type: number
                  description: 'Must be at least 0.01.'
                  example: 28
                std_m2_per_unit:
                  type: number
                  description: 'Must be at least 0.01.'
                  example: 48
                  nullable: true
                min_core_m2:
                  type: number
                  description: 'Must be at least 0.'
                  example: 39
                  nullable: true
                driver_description:
                  type: string
                  description: 'Must not be greater than 2000 characters.'
                  example: lwloauydlsmsjuryvojcy
                  nullable: true
                reference_driver_units:
                  type: integer
                  description: 'Must be at least 0. Must not be greater than 999999.'
                  example: 2
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: false
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataMasterDepartmentsMasterDepartment_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Data'
      security: []
    parameters:
      -
        in: path
        name: masterDepartment_id
        description: 'The ID of the masterDepartment.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/master-units:
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataMasterUnits
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Data'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                unit_type:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: auydlsmsjuryvojcybzvr
                benchmark_unit_area_m2_min:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_unit_area_m2_max:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_unit_area_notes:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: opfuudtdsufvyvddqamni
                  nullable: true
                benchmark_piece_area_m2_min:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_piece_area_m2_max:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_piece_basis:
                  type: string
                  description: 'Must not be greater than 100 characters.'
                  example: opfuudtdsufvyvddqamni
                  nullable: true
                benchmark_piece_notes:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: ihfqcoynlazghdtqtqxba
                  nullable: true
                legacy_benchmark_area:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: jwbpilpmufinllwloauyd
                  nullable: true
                legacy_benchmark_basis:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: lsmsjuryvojcybzvrbyic
                  nullable: true
                primary_owner:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: kznkygloigmkwxphlvazj
                  nullable: true
                is_mandatory:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: rcnfbaqywuxhgjjmzuxju
                  nullable: true
                clinical_or_non_clinical:
                  type: string
                  description: 'Must not be greater than 48 characters.'
                  example: bqouzswiwxtrkimfcatbx
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
                fav:
                  type: integer
                  description: ''
                  example: 0
                  enum:
                    - 0
                    - 1
                department_links:
                  type: array
                  description: ''
                  example: null
                  items:
                    type: object
                    properties:
                      master_department_id:
                        type: integer
                        description: 'The <code>id</code> of an existing record in the master_departments table.'
                        example: 17
                      importance:
                        type: string
                        description: 'Must not be greater than 32 characters.'
                        example: mqeopfuudtdsufvyvddqa
                        nullable: true
                      sort_order:
                        type: integer
                        description: 'Must be at least 0.'
                        example: 45
                        nullable: true
                      is_active:
                        type: boolean
                        description: ''
                        example: false
                    required:
                      - master_department_id
                workflow:
                  type: object
                  description: ''
                  example: null
                  properties:
                    code:
                      type: string
                      description: 'Must not be greater than 32 characters.'
                      example: spzmrazsroyjpxmqesedy
                      nullable: true
                    name_en:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: ghenqcopwvownkbamlnfn
                      nullable: true
                    name_ar:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: gefbeilfzsyuxoezbdtab
                      nullable: true
                    steps:
                      type: array
                      description: ''
                      example: null
                      items:
                        type: object
                        nullable: true
                        properties:
                          step_name_en:
                            type: string
                            description: 'Must not be greater than 255 characters.'
                            example: niihfqcoynlazghdtqtqx
                          step_name_ar:
                            type: string
                            description: 'Must not be greater than 255 characters.'
                            example: bajwbpilpmufinllwloau
                            nullable: true
                          step_type:
                            type: string
                            description: 'Must not be greater than 64 characters.'
                            example: ydlsmsjuryvojcybzvrby
                            nullable: true
                          is_required:
                            type: boolean
                            description: ''
                            example: false
                          requires_master_department_id:
                            type: integer
                            description: 'The <code>id</code> of an existing record in the master_departments table.'
                            example: 17
                            nullable: true
                          requires_master_unit_id:
                            type: integer
                            description: 'The <code>id</code> of an existing record in the master_units table.'
                            example: 17
                            nullable: true
                        required:
                          - step_name_en
                  nullable: true
                workflow_clear:
                  type: boolean
                  description: ''
                  example: true
              required:
                - code
                - name_en
                - unit_type
      security: []
  '/api/v1/admin/master-data/master-units/{master_unit_id}':
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataMasterUnitsMaster_unit_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Data'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: vmqeopfuudtdsufvyvddq
                name_en:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: amniihfqcoynlazghdtqt
                name_ar:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: qxbajwbpilpmufinllwlo
                  nullable: true
                unit_type:
                  type: string
                  description: 'Must not be greater than 64 characters.'
                  example: auydlsmsjuryvojcybzvr
                benchmark_unit_area_m2_min:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_unit_area_m2_max:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_unit_area_notes:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: opfuudtdsufvyvddqamni
                  nullable: true
                benchmark_piece_area_m2_min:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_piece_area_m2_max:
                  type: number
                  description: ''
                  example: 11613.31890586
                  nullable: true
                benchmark_piece_basis:
                  type: string
                  description: 'Must not be greater than 100 characters.'
                  example: opfuudtdsufvyvddqamni
                  nullable: true
                benchmark_piece_notes:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: ihfqcoynlazghdtqtqxba
                  nullable: true
                legacy_benchmark_area:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: jwbpilpmufinllwloauyd
                  nullable: true
                legacy_benchmark_basis:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: lsmsjuryvojcybzvrbyic
                  nullable: true
                primary_owner:
                  type: string
                  description: 'Must not be greater than 191 characters.'
                  example: kznkygloigmkwxphlvazj
                  nullable: true
                is_mandatory:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: rcnfbaqywuxhgjjmzuxju
                  nullable: true
                clinical_or_non_clinical:
                  type: string
                  description: 'Must not be greater than 48 characters.'
                  example: bqouzswiwxtrkimfcatbx
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
                fav:
                  type: integer
                  description: ''
                  example: 0
                  enum:
                    - 0
                    - 1
                department_links:
                  type: array
                  description: ''
                  example: null
                  items:
                    type: object
                    properties:
                      master_department_id:
                        type: integer
                        description: 'The <code>id</code> of an existing record in the master_departments table.'
                        example: 17
                      importance:
                        type: string
                        description: 'Must not be greater than 32 characters.'
                        example: mqeopfuudtdsufvyvddqa
                        nullable: true
                      sort_order:
                        type: integer
                        description: 'Must be at least 0.'
                        example: 45
                        nullable: true
                      is_active:
                        type: boolean
                        description: ''
                        example: false
                    required:
                      - master_department_id
                workflow:
                  type: object
                  description: ''
                  example: null
                  properties:
                    code:
                      type: string
                      description: 'Must not be greater than 32 characters.'
                      example: spzmrazsroyjpxmqesedy
                      nullable: true
                    name_en:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: ghenqcopwvownkbamlnfn
                      nullable: true
                    name_ar:
                      type: string
                      description: 'Must not be greater than 255 characters.'
                      example: gefbeilfzsyuxoezbdtab
                      nullable: true
                    steps:
                      type: array
                      description: ''
                      example: null
                      items:
                        type: object
                        nullable: true
                        properties:
                          step_name_en:
                            type: string
                            description: 'Must not be greater than 255 characters.'
                            example: niihfqcoynlazghdtqtqx
                          step_name_ar:
                            type: string
                            description: 'Must not be greater than 255 characters.'
                            example: bajwbpilpmufinllwloau
                            nullable: true
                          step_type:
                            type: string
                            description: 'Must not be greater than 64 characters.'
                            example: ydlsmsjuryvojcybzvrby
                            nullable: true
                          is_required:
                            type: boolean
                            description: ''
                            example: false
                          requires_master_department_id:
                            type: integer
                            description: 'The <code>id</code> of an existing record in the master_departments table.'
                            example: 17
                            nullable: true
                          requires_master_unit_id:
                            type: integer
                            description: 'The <code>id</code> of an existing record in the master_units table.'
                            example: 17
                            nullable: true
                        required:
                          - step_name_en
                  nullable: true
                workflow_clear:
                  type: boolean
                  description: ''
                  example: true
              required:
                - code
                - name_en
                - unit_type
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataMasterUnitsMaster_unit_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Data'
      security: []
    parameters:
      -
        in: path
        name: master_unit_id
        description: 'The ID of the master unit.'
        example: 1
        required: true
        schema:
          type: integer
  /api/v1/admin/master-data/medical-devices:
    get:
      summary: 'List medical devices with optional filters and sorting.'
      operationId: listMedicalDevicesWithOptionalFiltersAndSorting
      description: 'Query: `search` (name/code), `device_type`, `is_active` (0|1), `sort` (name|code|device_type|is_active|created_at|updated_at), `direction` (asc|desc), `per_page` (max 100).'
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated
                properties:
                  message:
                    type: string
                    example: Unauthenticated
      tags:
        - 'Master Medical Devices'
      security: []
    post:
      summary: ''
      operationId: postApiV1AdminMasterDataMedicalDevices
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Medical Devices'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 64 characters.'
                  example: amniihfqcoynlazghdtqt
                description:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: 'Necessitatibus architecto aut consequatur debitis et id.'
                  nullable: true
                device_type:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: ilpmufinllwloauydlsms
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
              required:
                - name
                - code
      security: []
  '/api/v1/admin/master-data/medical-devices/{master_medical_device_id}':
    get:
      summary: ''
      operationId: getApiV1AdminMasterDataMedicalDevicesMaster_medical_device_id
      description: ''
      parameters: []
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\MasterMedicalDevice] consequatur'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\MasterMedicalDevice] consequatur'
      tags:
        - 'Master Medical Devices'
      security: []
    put:
      summary: ''
      operationId: putApiV1AdminMasterDataMedicalDevicesMaster_medical_device_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Medical Devices'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: vmqeopfuudtdsufvyvddq
                code:
                  type: string
                  description: 'Must match the regex /^[A-Za-z0-9\-_]+$/. Must not be greater than 64 characters.'
                  example: amniihfqcoynlazghdtqt
                description:
                  type: string
                  description: 'Must not be greater than 5000 characters.'
                  example: 'Necessitatibus architecto aut consequatur debitis et id.'
                  nullable: true
                device_type:
                  type: string
                  description: 'Must not be greater than 128 characters.'
                  example: ilpmufinllwloauydlsms
                  nullable: true
                is_active:
                  type: boolean
                  description: ''
                  example: true
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AdminMasterDataMedicalDevicesMaster_medical_device_id
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Master Medical Devices'
      security: []
    parameters:
      -
        in: path
        name: master_medical_device_id
        description: 'The ID of the master medical device.'
        example: consequatur
        required: true
        schema:
          type: string
