paths:
  /api/v1/emissions/automobile/vehicle:
    post:
      summary: Buscar póliza vigente por placa
      description: |
        Busca si existe una póliza activa para la placa indicada.
        Retorna los datos del vehículo, asegurado y vigencia de la póliza.

        **Salida utilizada por:**
        - Verificación previa antes de `POST /api/v1/external/createEmissionAuto`
          para confirmar si el vehículo ya tiene póliza activa.
      tags:
        - Emisiones
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleSearchRequest'
            example:
              xplaca: "AE218EG"
              fdesde: "2026-01-01"
              type: "RCV"
      responses:
        '200':
          description: Póliza encontrada
          content:
            application/json:
              example:
                status: true
                data:
                  cnpoliza: "18-27-002031144"
                  xplaca: "AE218EG"
                  fdesde: "2026-05-08"
                  fhasta: "2027-05-08"
        '400':
          description: Parámetros inválidos
          content:
            application/json:
              example:
                status: false
                message: "Parámetros de entrada inválidos."
                errors:
                  - campo: xplaca
                    mensaje: "El parámetro 'xplaca' es requerido."
        '404':
          description: No se encontró póliza para la placa indicada
        '500':
          description: Error interno del servidor

  /api/v1/emissions/automobile/serial:
    post:
      summary: Buscar póliza vigente por serial de carrocería
      description: |
        Busca si existe una póliza activa para el serial de carrocería indicado.
        Se debe enviar **al menos uno** de los campos: `xsercar` o `xserialcarroceria`.

        **Salida utilizada por:**
        - Verificación previa antes de `POST /api/v1/external/createEmissionAuto`
          para confirmar si el vehículo ya tiene póliza activa.
      tags:
        - Emisiones
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SerialSearchRequest'
            examples:
              porXsercar:
                summary: Usando campo xsercar
                value:
                  xsercar: "KNAFC526365439484"
                  fdesde: "2026-01-01"
                  type: "RCV"
              porXserialcarroceria:
                summary: Usando campo xserialcarroceria (alias)
                value:
                  xserialcarroceria: "KNAFC526365439484"
                  fdesde: "2026-01-01"
                  type: "RCV"
      responses:
        '200':
          description: Póliza encontrada
          content:
            application/json:
              example:
                status: true
                data:
                  cnpoliza: "18-27-002031144"
                  xsercar: "KNAFC526365439484"
                  fdesde: "2026-05-08"
                  fhasta: "2027-05-08"
        '400':
          description: Parámetros inválidos o campo obligatorio faltante
          content:
            application/json:
              example:
                status: false
                message: "Parámetros de entrada inválidos."
                errors:
                  - campo: xsercar
                    mensaje: "Se requiere 'xsercar' o 'xserialcarroceria'."
        '404':
          description: No se encontró póliza para el serial indicado
        '500':
          description: Error interno del servidor

components:
  schemas:
    VehicleSearchRequest:
      type: object
      required: [xplaca, fdesde, type]
      properties:
        xplaca:
          type: string
          maxLength: 15
          description: Número de placa del vehículo.
          example: "AE218EG"
        fdesde:
          type: string
          format: date
          description: Fecha desde la cual buscar la póliza (formato `YYYY-MM-DD`).
          example: "2026-01-01"
        type:
          type: string
          maxLength: 10
          description: Tipo de búsqueda (ej. `RCV`).
          example: "RCV"

    SerialSearchRequest:
      type: object
      properties:
        xsercar:
          type: string
          maxLength: 30
          description: Serial de carrocería. Requerido si no se envía `xserialcarroceria`.
          example: "KNAFC526365439484"
        xserialcarroceria:
          type: string
          maxLength: 30
          description: Alias de `xsercar`. Requerido si no se envía `xsercar`.
          example: "KNAFC526365439484"
        fdesde:
          type: string
          format: date
          description: Fecha desde la cual buscar la póliza (formato `YYYY-MM-DD`).
          example: "2026-01-01"
        type:
          type: string
          maxLength: 10
          description: Tipo de búsqueda (ej. `RCV`).
          example: "RCV"
