paths:
  /api/v1/inma/year:
    post:
      summary: Años de vehículos disponibles
      description: |
        Retorna la lista de años disponibles en el catálogo INMA.

        **Salida utilizada por:**
        - `POST /api/v1/inma/marca` → campo `fano`
        - `POST /api/v1/inma/modelo` → campo `fano`
        - `POST /api/v1/inma/version` → campo `fano`
        - `POST /api/v1/external/getCategoriasUso` → campo `fano`
        - `POST /api/v1/external/getCotizacionAuto` → campo `fano`
      tags:
        - INMA
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Lista de años disponibles
          content:
            application/json:
              example:
                status: true
                data: [2020, 2021, 2022, 2023, 2024]
        '500':
          description: Error interno del servidor

  /api/v1/inma/marca:
    post:
      summary: Marcas de vehículos según año
      description: |
        Retorna las marcas disponibles en INMA para el año indicado.

        **Dependencias de entrada:**
        | Campo | Obtener de |
        |-------|------------|
        | `fano` | `POST /api/v1/inma/year` → `data[]` |

        **Salida utilizada por:**
        - `POST /api/v1/inma/modelo` → campo `cmarca`
        - `POST /api/v1/inma/version` → campo `cmarca`
        - `POST /api/v1/external/getCategoriasUso` → campo `cmarca`
        - `POST /api/v1/external/getCotizacionAuto` → campo `cmarca`
      tags:
        - INMA
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InmaMarcaRequest'
            example:
              fano: 2023
      responses:
        '200':
          description: Marcas disponibles para el año indicado
          content:
            application/json:
              example:
                status: true
                data:
                  - cmarca: "040"
                    xmarca: "KIA"
        '400':
          description: Parámetros inválidos
          content:
            application/json:
              example:
                status: false
                message: "Parámetros de entrada inválidos."
                errors:
                  - campo: fano
                    mensaje: "El parámetro 'fano' es requerido."
        '500':
          description: Error interno del servidor

  /api/v1/inma/marca/{ctipo}:
    post:
      summary: Marcas de vehículos filtradas por tipo
      description: |
        Retorna las marcas disponibles en INMA para el año y tipo de vehículo indicados.

        **Dependencias de entrada:**
        | Campo | Obtener de |
        |-------|------------|
        | `fano` | `POST /api/v1/inma/year` → `data[]` |
        | `ctipo` (path) | Código de tipo de vehículo (valor fijo según negocio) |

        **Salida utilizada por:**
        - `POST /api/v1/inma/modelo` → campo `cmarca`
        - `POST /api/v1/inma/version` → campo `cmarca`
        - `POST /api/v1/external/getCategoriasUso` → campo `cmarca`
        - `POST /api/v1/external/getCotizacionAuto` → campo `cmarca`
      tags:
        - INMA
      parameters:
        - in: path
          name: ctipo
          schema:
            type: integer
          required: false
          description: Código del tipo de vehículo (ej. `1` Particular, `2` Carga).
          example: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InmaMarcaRequest'
            example:
              fano: 2023
      responses:
        '200':
          description: Marcas disponibles para el tipo indicado
        '400':
          description: Parámetros inválidos
        '500':
          description: Error interno del servidor

  /api/v1/inma/modelo:
    post:
      summary: Modelos de vehículos según año y marca
      description: |
        Retorna los modelos disponibles en INMA para la combinación de año y marca indicados.

        **Dependencias de entrada:**
        | Campo | Obtener de |
        |-------|------------|
        | `fano` | `POST /api/v1/inma/year` → `data[]` |
        | `cmarca` | `POST /api/v1/inma/marca` → `data[].cmarca` |

        **Salida utilizada por:**
        - `POST /api/v1/inma/version` → campo `cmodelo`
        - `POST /api/v1/external/getCategoriasUso` → campo `cmodelo`
        - `POST /api/v1/external/getCotizacionAuto` → campo `cmodelo`
      tags:
        - INMA
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InmaModeloRequest'
            example:
              fano: 2023
              cmarca: "040"
      responses:
        '200':
          description: Modelos disponibles
          content:
            application/json:
              example:
                status: true
                data:
                  - cmodelo: "013"
                    xmodelo: "CARENS"
        '400':
          description: Parámetros inválidos
          content:
            application/json:
              example:
                status: false
                message: "Parámetros de entrada inválidos."
                errors:
                  - campo: cmarca
                    mensaje: "El parámetro 'cmarca' es requerido."
        '500':
          description: Error interno del servidor

  /api/v1/inma/version:
    post:
      summary: Versiones de vehículos según año, marca y modelo
      description: |
        Retorna las versiones disponibles en INMA para la combinación de año, marca y modelo.

        **Dependencias de entrada:**
        | Campo | Obtener de |
        |-------|------------|
        | `fano` | `POST /api/v1/inma/year` → `data[]` |
        | `cmarca` | `POST /api/v1/inma/marca` → `data[].cmarca` |
        | `cmodelo` | `POST /api/v1/inma/modelo` → `data[].cmodelo` |

        **Salida utilizada por:**
        - `POST /api/v1/external/getCategoriasUso` → campo `cversion`
        - `POST /api/v1/external/getCotizacionAuto` → campo `cversion`
        - `POST /api/v1/external/createEmissionAuto` → campo `cversion`
      tags:
        - INMA
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InmaVersionRequest'
            example:
              fano: 2023
              cmarca: "040"
              cmodelo: "013"
      responses:
        '200':
          description: Versiones disponibles
          content:
            application/json:
              example:
                status: true
                data:
                  - cversion: "001"
                    xversion: "LS - Automático"
        '400':
          description: Parámetros inválidos
          content:
            application/json:
              example:
                status: false
                message: "Parámetros de entrada inválidos."
                errors:
                  - campo: cmodelo
                    mensaje: "El parámetro 'cmodelo' es requerido."
        '500':
          description: Error interno del servidor

components:
  schemas:
    InmaMarcaRequest:
      type: object
      required: [fano]
      properties:
        fano:
          type: integer
          minimum: 1000
          maximum: 9999
          description: >
            Año del vehículo (exactamente 4 dígitos).
            **Obtener de** `POST /api/v1/inma/year` → `data[]`.
          example: 2023

    InmaModeloRequest:
      type: object
      required: [fano, cmarca]
      properties:
        fano:
          type: integer
          minimum: 1000
          maximum: 9999
          description: >
            Año del vehículo. **Obtener de** `POST /api/v1/inma/year` → `data[]`.
          example: 2023
        cmarca:
          type: string
          maxLength: 10
          description: >
            Código de marca. **Obtener de** `POST /api/v1/inma/marca` → `data[].cmarca`.
          example: "040"

    InmaVersionRequest:
      type: object
      required: [fano, cmarca, cmodelo]
      properties:
        fano:
          type: integer
          minimum: 1000
          maximum: 9999
          description: >
            Año del vehículo. **Obtener de** `POST /api/v1/inma/year` → `data[]`.
          example: 2023
        cmarca:
          type: string
          maxLength: 10
          description: >
            Código de marca. **Obtener de** `POST /api/v1/inma/marca` → `data[].cmarca`.
          example: "040"
        cmodelo:
          type: string
          maxLength: 10
          description: >
            Código de modelo. **Obtener de** `POST /api/v1/inma/modelo` → `data[].cmodelo`.
          example: "013"
