{
  "openapi": "3.0.0",
  "info": {
    "title": "API Parcelas Em Atraso",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://sauto.dsv.bradescoseguros.com.br:443/V2/WSBL-GerenciaCarteiraCsp/service/",
      "description": "Homologação"
    },
    {
      "url": "https://sauto.hml.bradescoseguros.com.br:443/V2/WSBL-GerenciaCarteiraCsp/service/",
      "description": "Desenvolvimento"
    },
    {
      "url": "https://sauto.bradescoseguros.com.br:443/V2/WSBL-GerenciaCarteiraCsp/service/",
      "description": "Produção"
    }
  ],
  "paths": {
    "/parcelas": {
      "post": {
        "tags": [
          "Parcelas Em Atraso"
        ],
        "summary": "Lista parcelas em atraso",
        "operationId": "listarParcelasEmAtraso",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelasEmAtrasoRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operação bem-sucedida",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParcelasEmAtrasoResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroResponseDTO"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno no servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroResponseDTO"
                }
              }
            }
          },
          "503": {
            "description": "Serviço indisponível",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroResponseDTO"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ParcelasEmAtrasoRequestDTO": {
        "type": "object",
        "properties": {
          "cnpjProvedor": {
            "type": "integer",
            "format": "int64",
            "description": "CNPJ do provedor",
            "example": 12345678000195
          },
          "cpfCnpjCorretor": {
            "type": "integer",
            "format": "int64",
            "description": "CPF ou CNPJ do corretor",
            "example": 12345678901
          },
          "featureToggle": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de feature toggles",
            "example": [
              "feature1",
              "feature2"
            ]
          },
          "chaveApolice": {
            "$ref": "#/components/schemas/ChaveApoliceDTO",
            "description": "Chave da apólice"
          }
        },
        "required": [
          "cnpjProvedor",
          "cpfCnpjCorretor",
          "chaveApolice"
        ]
      },
      "ChaveApoliceDTO": {
        "type": "object",
        "properties": {
          "sucursalApolice": {
            "type": "string",
            "description": "Sucursal da apólice",
            "example": "001"
          },
          "numeroApolice": {
            "type": "string",
            "description": "Número da apólice",
            "example": "123456"
          },
          "itemApolice": {
            "type": "string",
            "description": "Item da apólice",
            "example": "0001"
          }
        },
        "required": [
          "sucursalApolice",
          "numeroApolice",
          "itemApolice"
        ]
      },
      "ParcelasEmAtrasoResponseDTO": {
        "type": "object",
        "properties": {
          "parcelas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParcelaDTO"
            },
            "description": "Lista de parcelas em atraso"
          },
          "qtdeParcelas": {
            "type": "integer",
            "description": "Quantidade de parcelas em atraso",
            "example": 5
          },
          "situacaoSistemas": {
            "$ref": "#/components/schemas/SituacaoSistemasDTO",
            "description": "Situação dos sistemas"
          },
          "mensagemErro": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MensagemErroResponseDTO"
            },
            "description": "Conjunto de mensagens de erro"
          }
        }
      },
      "ParcelaDTO": {
        "type": "object",
        "properties": {
          "corretor": {
            "$ref": "#/components/schemas/CorretorDTO",
            "description": "Informações do corretor"
          },
          "segurado": {
            "$ref": "#/components/schemas/SeguradoDTO",
            "description": "Informações do segurado"
          },
          "idParcela": {
            "type": "integer",
            "format": "int64",
            "description": "Identificador da parcela",
            "example": 123456
          },
          "sucursal": {
            "type": "string",
            "description": "Sucursal da parcela",
            "example": "Sucursal XYZ"
          },
          "apolice": {
            "type": "integer",
            "description": "Número da apólice",
            "example": 12345
          },
          "item": {
            "type": "integer",
            "description": "Número do item",
            "example": 1
          },
          "endosso": {
            "type": "string",
            "description": "Número do endosso",
            "example": "E123"
          },
          "prestacao": {
            "type": "string",
            "description": "Número da prestação",
            "example": "P1"
          },
          "pagamento": {
            "type": "string",
            "description": "Tipo de pagamento",
            "example": "Boleto"
          },
          "premio": {
            "type": "number",
            "format": "float",
            "description": "Valor do prêmio",
            "example": 150.75
          },
          "vencimento": {
            "type": "string",
            "format": "date",
            "description": "Data de vencimento",
            "example": "2023-12-31"
          },
          "dataLimite": {
            "type": "string",
            "format": "date",
            "description": "Data limite",
            "example": "2023-12-31"
          },
          "vigAjustada": {
            "type": "string",
            "description": "Vigência ajustada",
            "example": "2023-12-31"
          },
          "criticidade": {
            "type": "boolean",
            "description": "Indicador de criticidade",
            "example": true
          },
          "ramoSeguro": {
            "type": "integer",
            "description": "Código do ramo de seguro",
            "example": 101
          },
          "companhiaSeguradora": {
            "type": "integer",
            "description": "Código da companhia seguradora",
            "example": 202
          },
          "parcSistemaCobranca": {
            "type": "string",
            "description": "Código do sistema de cobrança",
            "example": "S123"
          },
          "dvParcSistemaCobranca": {
            "type": "integer",
            "description": "Dígito verificador do sistema de cobrança",
            "example": 1
          },
          "modalidade": {
            "type": "string",
            "description": "Modalidade da parcela",
            "example": "Mensal"
          },
          "agenciaProdutora": {
            "type": "string",
            "description": "Agência produtora",
            "example": "Agência ABC"
          },
          "historicoEmail": {
            "$ref": "#/components/schemas/HistoricoEmailDTO",
            "description": "Histórico de emails"
          },
          "outrasParcelas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParcelaSimplesDTO"
            },
            "description": "Lista de outras parcelas"
          },
          "sinistro": {
            "type": "boolean",
            "description": "Indicador de sinistro",
            "example": false
          },
          "apoliceEmCancelamento": {
            "type": "boolean",
            "description": "Indicador de apólice em cancelamento",
            "example": false
          }
        }
      },
      "SituacaoSistemasDTO": {
        "type": "object",
        "properties": {
          "sistemasDisponiveis": {
            "type": "boolean",
            "description": "Indica se os sistemas estão disponíveis",
            "example": true
          },
          "mensagem": {
            "type": "string",
            "description": "Mensagem informativa sobre a situação dos sistemas",
            "example": "Todos os sistemas estão operacionais"
          }
        }
      },
      "CorretorDTO": {
        "type": "object",
        "properties": {
          "codigo": {
            "type": "integer",
            "description": "Código do corretor",
            "example": 123
          }
        }
      },
      "SeguradoDTO": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "description": "Nome do segurado",
            "example": "João da Silva"
          },
          "email": {
            "type": "string",
            "description": "Email do segurado",
            "example": "joao.silva@example.com"
          },
          "telefones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TelefoneDTO"
            },
            "description": "Lista de telefones do segurado"
          },
          "cpfCnpj": {
            "type": "string",
            "description": "CPF ou CNPJ do segurado",
            "example": "123.456.789-00"
          }
        }
      },
      "HistoricoEmailDTO": {
        "type": "object",
        "properties": {
          "emailDestino": {
            "type": "string",
            "description": "Email de destino",
            "example": "exemplo@dominio.com"
          },
          "dataEnvio": {
            "type": "string",
            "description": "Data de envio do email",
            "example": "2023-10-01T12:00:00Z"
          },
          "codAgendamento": {
            "type": "string",
            "description": "Código de agendamento",
            "example": "AG123456"
          },
          "status": {
            "type": "string",
            "description": "Status do envio do email",
            "example": "1"
          }
        }
      },
      "ParcelaSimplesDTO": {
        "type": "object",
        "properties": {
          "idParcela": {
            "type": "integer",
            "format": "int64",
            "description": "Identificador da parcela",
            "example": 1
          },
          "endosso": {
            "type": "string",
            "description": "Endosso da parcela",
            "example": "123456"
          },
          "prestacao": {
            "type": "string",
            "description": "Prestação da parcela",
            "example": "1/12"
          },
          "pagamento": {
            "type": "string",
            "description": "Pagamento da parcela",
            "example": "Pago"
          },
          "premio": {
            "type": "number",
            "format": "float",
            "description": "Prêmio da parcela",
            "example": 100.5
          },
          "vencimento": {
            "type": "string",
            "description": "Data de vencimento da parcela",
            "example": "2023-12-31"
          }
        }
      },
      "TelefoneDTO": {
        "type": "object",
        "properties": {
          "tipo": {
            "type": "string",
            "description": "Tipo do telefone",
            "example": "Celular"
          },
          "telefone": {
            "type": "string",
            "description": "Número do telefone",
            "example": "11987654321"
          }
        }
      },
      "MensagemErroResponseDTO": {
        "type": "object",
        "properties": {
          "cdErro": {
            "type": "integer",
            "description": "Código do erro",
            "example": 404
          },
          "dsErro": {
            "type": "string",
            "description": "Descrição do erro",
            "example": "Recurso não encontrado"
          },
          "cdSQLCode": {
            "type": "integer",
            "description": "Código SQL do erro",
            "example": 1001
          },
          "dsPrograma": {
            "type": "string",
            "description": "Nome do programa onde ocorreu o erro",
            "example": "ProgramaX"
          }
        }
      }
    }
  }
}