export interface ICoberturasBuscarCoberturasComPreco {
    Coberturas: Cobertura[];
    ProcedimentosSite: ProcedimentosSite[];
    TiposProcedimentos: TiposProcedimento[];
}

export interface TiposProcedimento {
    Id: string;
    Nome: string;
    Abreviacao: string;
    PermiteReembolso: string;
    DataCadastro: string;
    Ativo: string;
}

export interface ProcedimentosSite {
    Id: string;
    Nome: string;
    TiposProcedimentosId: string;
    Ativo: string;
    DataCadasto: string;
}

export interface Cobertura {
    Id: string;
    Nome: string;
    Coparticipativo: string;
    Coparticipacao?: any;
    Franquia?: any;
    Ativo: string;
    DataCadastro: string;
    Ordem: string;
    Reembolso: string;
    ValorReembolso?: any;
    ValorIndicacao: string;
    CoberturasIdPrincipal?: any;
    EstadosId?: any;
    CidadesId?: any;
    TipoReembolso: string;
    TiposCoberturasId: string;
    HtmlSite?: any;
    MaisVendido: string;
    OrigemCheckout: string;
    Baby: string;
    CarenciaZero?: any;
    TaxaAdesao?: any;
    DescontoMarketPlace: string;
    LocalDisponibilidade: string;
    UpgradeApp: string;
    ExibeSite: string;
    PaginaInicial: string;
    Imagem: string;
    TiposCoberturasNome: string;
    Valores: Valore[];
    Procedimentos: Procedimento[];
    Boleto: Boleto;
    Cartao: Cartao;
    ProcedimentosCarenciaZero: ProcedimentosCarenciaZero;
    Especie?: string;
}

export interface ProcedimentosCarenciaZero {
    '1': _1;
}

export interface _1 {
    CoberturasProcedimentosId: string;
    CoberturasProcedimentosCoberturasId: string;
    CoberturasProcedimentosProcedimentosId: string;
    CoberturasProcedimentosLimiteAno: string;
    CoberturasProcedimentosPeriodicidade: string;
    CoberturasProcedimentosCarencia: string;
    CoberturasProcedimentosValorReembolso: string;
    CoberturasProcedimentosAtivo: string;
    CoberturasProcedimentosDataCadastro: string;
    CoberturasProcedimentosModalidadeReembolso: string;
    CoberturasId: string;
    CoberturasTiposCoberturasId: string;
    CoberturasNome: string;
    CoberturasCoparticipativo: string;
    CoberturasCoparticipacao?: any;
    CoberturasFranquia?: any;
    CoberturasAtivo: string;
    CoberturasDataCadastro: string;
    ProcedimentosId: string;
    ProcedimentosCodigo: string;
    ProcedimentosNome: string;
    ProcedimentosCarencia: string;
    ProcedimentosTipo: string;
    ProcedimentosTipoNome: string;
    ProcedimentosLimiteAno: string;
    ProcedimentosAtivo: string;
    ProcedimentosDataCadastro: string;
}

export interface Cartao {
    Composicao: Composicao2;
}

export interface Composicao2 {
    DataFidelidade: string;
    ValorAdesao: number;
    ComposicaoMensalidade: ComposicaoMensalidade[];
    ComposicaoAdesao: ComposicaoMensalidade[];
    Pets: Pet2[];
    ValorDescontosMensalidades: number;
    ValorMensalidade: number;
    ValorTotalMensalidade: number;
    ValorTotal: number;
    ValorComDesconto: number;
    CampanhasCoberturasExibeSite: string;
}

export interface Pet2 {
    CoberturasId: string;
    Especie: number;
    DataNascimento: string;
    RacasId: string;
    TipoFiltro: number;
    Data: string;
    ConsultoresId: string;
    Ordem: number;
    Planos: Planos;
    Descontos: Desconto2[];
    ValoresAdesoes: ValoresAdesoe[];
    ValorUnitario: string;
    ValorDescontos: number;
    ValorAdesao: number;
    ValorAdesaoReal: number;
    DescontoCartao: string;
    Campanhas: Campanha[];
    ComposicaoMensalidade: ComposicaoMensalidade[];
    ComposicaoAdesao: ComposicaoMensalidade[];
}

export interface Desconto2 {
    Origem: number;
    PorcentagemDesconto: number;
    ValorDesconto: number | string;
    Descricao: string;
}

export interface Boleto {
    Composicao: Composicao;
}

export interface Composicao {
    DataFidelidade: string;
    ValorAdesao: number;
    ComposicaoMensalidade: ComposicaoMensalidade[];
    ComposicaoAdesao: ComposicaoMensalidade[];
    Pets: Pet[];
    ValorDescontosMensalidades: number;
    ValorMensalidade: number;
    ValorTotalMensalidade: number;
    ValorTotal: number;
    ValorComDesconto: number;
}

export interface Pet {
    CoberturasId: string;
    Especie: number;
    DataNascimento: string;
    RacasId: string;
    TipoFiltro: number;
    Data: string;
    ConsultoresId: string;
    Ordem: number;
    Planos: Planos;
    Descontos: Desconto[];
    ValoresAdesoes: ValoresAdesoe[];
    ValorUnitario: string;
    ValorDescontos: number;
    ValorAdesao: number;
    ValorAdesaoReal: number;
    DescontoCartao: number;
    Campanhas: Campanha[];
    ComposicaoMensalidade: ComposicaoMensalidade[];
    ComposicaoAdesao: ComposicaoMensalidade[];
}

export interface Campanha {
    PorcentagemDescontoAdesao: string;
    PorcentagemDescontoParcela: string;
    OrdemDesconto: number;
    TotalParcelasDesconto: string;
    CampanhasCoberturasId: string;
    UpGrade: string;
    CoberturasId: string;
    ParcelaInicial: number;
    ParcelaFinal: number;
    CupomDesconto?: any;
    TempoIndeterminado: string;
    CashBack: string;
    ValorCashBack?: any;
    PeriodicidadeCashBack?: any;
    FrequenciaCashBack?: any;
    TipoValorCashBack?: any;
    UsoUnico: string;
    DescontoMesAdesao: string;
    PorcentagemDescontoMesAdesao?: any;
}

export interface ValoresAdesoe {
    Id: string;
    Valor: string;
    Ativo: string;
    DataCadastro: string;
    TipoCoberturasId: string;
    DataInicioValidade: string;
}

export interface Desconto {
    Origem: number;
    PorcentagemDesconto: number;
    ValorDesconto: number;
    Descricao: string;
}

export interface Planos {
    Id: string;
    Nome: string;
    Especie: string;
    Porte: string;
    IdadeInicial: string;
    IdadeFinal: string;
    Valor: string;
    DescontoCartao: string;
    CoberturasId: string;
    Fidelidade: string;
    Ativo: string;
    DataCadastro: string;
    DataVigencia: string;
    IdSistemaAntigo?: any;
    ConsultoresId?: any;
}

export interface ComposicaoMensalidade {
    Nome: string;
    Valor: number | string;
    Tipo?: number;
    ParcelaInicial?: number;
    ParcelaFinal?: number;
    PorcentagemDesconto?: string;
    ValParcelaInicial?: number;
    TotalParcelas?: string;
}

export interface Procedimento {
    Id: string;
    CoberturasId: string;
    Ativo: string;
    DataCadastro: string;
    ProcedimentosSiteId: string;
}

export interface Valore {
    CoberturasId: string;
    CoberturasNome: string;
    CoberturasCoparticipativo: string;
    CoberturasCoparticipacao?: any;
    CoberturasFranquia?: any;
    CoberturasOrdem: string;
    CoberturasReembolso: string;
    CoberturasValorReembolso?: any;
    CoberturasTipoReembolso: string;
    CoberturasNivel: string;
    PlanosId: string;
    PlanosNome: string;
    PlanosEspecie: string;
    PlanosPorte: string;
    PlanosValor: string;
    PlanosDescontoCartao: string;
    PlanosFidelidade: string;
    PlanosDataVigencia: string;
    PlanosIdSistemaAntigo?: any;
    CoberturasQuantidadeProcedimentos: string;
}

