{
  "openapi": "3.0.0",
  "info": {
    "title": "API Apólices a Renovar",
    "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": {
    "/apolicesRenovar": {
      "post": {
        "tags": [
          "Apólices a Renovar"
        ],
        "summary": "Listar Apólices para Renovar",
        "operationId": "listarApolicesRenovar",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApolicesRenovarParams"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operação bem-sucedida",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApolicesRenovarResponse"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "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": {
      "ApolicesRenovarParams": {
        "type": "object",
        "properties": {
          "autenticacao": {
            "$ref": "#/components/schemas/Autenticacao",
            "description": "Dados de autenticação"
          },
          "filtros": {
            "$ref": "#/components/schemas/Filtros",
            "description": "Filtros para renovação de apólices"
          }
        },
        "required": [
          "autenticacao"
        ]
      },
      "Autenticacao": {
        "type": "object",
        "properties": {
          "provedor": {
            "type": "string",
            "description": "Provedor de autenticação",
            "example": "google"
          },
          "usuario": {
            "type": "string",
            "description": "Nome do usuário",
            "example": "usuario123"
          },
          "senha": {
            "type": "string",
            "description": "Senha do usuário",
            "example": "senhaSegura123"
          }
        },
        "required": [
          "provedor",
          "usuario",
          "senha"
        ]
      },
      "Filtros": {
        "type": "object",
        "properties": {
          "sucursal": {
            "type": "string",
            "description": "Sucursal",
            "example": "1234"
          },
          "nomeSegurado": {
            "type": "string",
            "description": "Nome do segurado",
            "example": "João da Silva"
          },
          "cpfCnpjSegurado": {
            "type": "string",
            "description": "CPF ou CNPJ do segurado",
            "example": "12345678901"
          },
          "placa": {
            "type": "string",
            "description": "Placa do veículo",
            "example": "ABC1234"
          },
          "chassi": {
            "type": "string",
            "description": "Chassi do veículo",
            "example": "9BWZZZ377VT004251"
          },
          "periodoVigencia": {
            "$ref": "#/components/schemas/PeriodoEmissao"
          },
          "situacaoApolice": {
            "type": "string",
            "description": "Situação da apólice",
            "example": "1"
          }
        }
      },
      "PeriodoEmissao": {
        "type": "object",
        "properties": {
          "dataInicial": {
            "type": "string",
            "description": "Data inicial do período de emissão",
            "example": "2023-01-01"
          },
          "dataFinal": {
            "type": "string",
            "description": "Data final do período de emissão",
            "example": "2023-12-31"
          },
          "periodo": {
            "type": "string",
            "description": "Período de emissão",
            "example": "MENSAL"
          }
        }
      },
      "ApolicesRenovarResponse": {
        "type": "object",
        "properties": {
          "cpfCnpjCorretor": {
            "type": "integer",
            "format": "int64",
            "description": "CPF ou CNPJ do corretor",
            "example": 12345678901
          },
          "apolices": {
            "type": "array",
            "description": "Lista de apólices a renovar",
            "items": {
              "$ref": "#/components/schemas/ApolicesRenovarModel"
            }
          },
          "mensagemErro": {
            "type": "array",
            "description": "Conjunto de mensagens de erro",
            "items": {
              "$ref": "#/components/schemas/MensagemErroResponseDTO"
            }
          }
        }
      },
      "ApolicesRenovarModel": {
        "type": "object",
        "properties": {
          "sucursalApolice": {
            "type": "integer",
            "description": "Sucursal da apólice",
            "example": 1
          },
          "ramoApolice": {
            "type": "integer",
            "description": "Ramo da apólice",
            "example": 2
          },
          "ciaApolice": {
            "type": "integer",
            "description": "Companhia da apólice",
            "example": 3
          },
          "numeroApolice": {
            "type": "integer",
            "description": "Número da apólice",
            "example": 123456
          },
          "itemApolice": {
            "type": "integer",
            "description": "Item da apólice",
            "example": 1
          },
          "corretor": {
            "$ref": "#/components/schemas/CorretorModel"
          },
          "dataFimVigencia": {
            "type": "string",
            "format": "date",
            "description": "Data de fim da vigência",
            "example": "2023-12-31"
          },
          "veiculo": {
            "$ref": "#/components/schemas/VeiculoModel"
          },
          "situacaoRenovacao": {
            "$ref": "#/components/schemas/SituacaoRenovacaoModel"
          },
          "segurado": {
            "$ref": "#/components/schemas/SeguradoModel"
          }
        }
      },
      "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"
          }
        }
      },
      "CorretorModel": {
        "type": "object",
        "properties": {
          "cpd": {
            "type": "string",
            "description": "Código do corretor",
            "example": "123456"
          },
          "contrato": {
            "type": "string",
            "description": "Contrato do corretor",
            "example": "ABC123"
          }
        }
      },
      "VeiculoModel": {
        "type": "object",
        "properties": {
          "codigo": {
            "type": "integer",
            "description": "Código do veículo",
            "example": 12345
          },
          "modelo": {
            "type": "string",
            "description": "Modelo do veículo",
            "example": "Fusca"
          },
          "anoFabricacao": {
            "type": "string",
            "description": "Ano de fabricação do veículo",
            "example": "2020"
          },
          "anoModelo": {
            "type": "string",
            "description": "Ano do modelo do veículo",
            "example": "2021"
          },
          "placa": {
            "type": "string",
            "description": "Placa do veículo",
            "example": "ABC-1234"
          },
          "chassi": {
            "type": "string",
            "description": "Chassi do veículo",
            "example": "9BWZZZ377VT004251"
          }
        }
      },
      "SituacaoRenovacaoModel": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status da renovação",
            "example": "Aprovado"
          },
          "numeroCotacao": {
            "type": "integer",
            "description": "Número da cotação",
            "example": 123456
          },
          "valorPremio": {
            "type": "number",
            "format": "double",
            "description": "Valor do prêmio",
            "example": 1500.75
          },
          "dataCotacao": {
            "type": "string",
            "format": "date",
            "description": "Data da cotação",
            "example": "2023-10-01"
          },
          "bonusCalculado": {
            "type": "number",
            "format": "double",
            "description": "Bônus calculado",
            "example": 200.5
          },
          "codProduto": {
            "type": "integer",
            "description": "Código do produto",
            "example": 789
          },
          "desProduto": {
            "type": "string",
            "description": "Descrição do produto",
            "example": "Seguro Automóvel"
          },
          "comissao": {
            "type": "number",
            "format": "double",
            "description": "Comissão",
            "example": 300
          },
          "numeroProposta": {
            "type": "integer",
            "description": "Número da proposta",
            "example": 987654
          },
          "msgErrorRenovacao": {
            "type": "string",
            "description": "Mensagem de erro da renovação",
            "example": "Erro ao processar a renovação"
          }
        }
      },
      "SeguradoModel": {
        "type": "object",
        "properties": {
          "nomeSegurado": {
            "type": "string",
            "description": "Nome do segurado",
            "example": "João da Silva"
          },
          "cpfCnpjSegurado": {
            "type": "string",
            "description": "CPF ou CNPJ do segurado",
            "example": "123.456.789-00"
          }
        }
      }
    }
  }
}