senal88's picture
chore: deploy web_comercial from monorepo
7a818d6 verified
export interface ParametrosPlano {
id_plano: string;
nome_plano: string;
prazo_meses: number;
taxa_administracao_total: number;
fundo_reserva_mensal: number;
seguro_prestamista: number;
}
export interface SimulacaoInput {
credito_desejado: number;
parametros: ParametrosPlano;
tem_lance: boolean;
lance_percentual?: number;
}
export interface ResultadoParcela {
fundo_comum: number;
taxa_administracao: number;
fundo_reserva: number;
seguro: number;
total: number;
}
export interface ResultadoSimulacao {
credito: number;
prazo: number;
parcela_integral: ResultadoParcela;
parcela_reduzida?: ResultadoParcela;
valor_lance?: number;
prazo_apos_lance?: number;
}
export interface TransacaoPortabilidade {
valor: number;
contemplada: boolean;
}
export interface SimulacaoSecundarioInput {
fluxos_mensais: number[];
transacoes_portabilidade?: TransacaoPortabilidade[];
portabilidade_percentual_contemplada?: number;
portabilidade_percentual_nao_contemplada?: number;
volume_contratado?: number;
fee_percentual?: number;
percentual_cartas_parcela_reduzida?: number;
meses_pos_ultima_contemplacao?: number;
sem_correcao_antes_contemplacao?: boolean;
}
export interface RegrasSecundarioAplicadas {
portabilidade_contemplada: number;
portabilidade_nao_contemplada: number;
sem_correcao_antes_contemplacao: boolean;
fee_sobre_volume_reduzido_70: boolean;
}
export interface ResultadoSimulacaoSecundario {
fluxo_ajustado: number[];
custo_portabilidade: number;
custo_fee_parcela_reduzida: number;
custo_total_deducoes: number;
caixa_maximo_negativo: number;
payback_meses: number | null;
tir_mensal: number | null;
tir_anual: number | null;
regras_aplicadas: RegrasSecundarioAplicadas;
}
export interface ScpFlowPatternSummary {
id: string;
nome: string;
descricao: string;
pontos: number;
inicio?: string;
fim?: string;
}
export interface ScpClientDefault {
client_id: string;
client_name: string;
default_pattern_id: string;
status: string;
}
export interface ScpFlowPoint {
periodo: string;
fluxo: number;
}
export interface MontarFluxoClienteScpInput {
client_id: string;
pattern_id?: string;
escala_fluxo?: number;
deslocamento_meses?: number;
novo_client_id?: string;
novo_client_name?: string;
}
export interface MontarFluxoClienteScpOutput {
client_id: string;
client_name: string;
source_client_id: string;
pattern_id: string;
pattern_name: string;
escala_fluxo: number;
deslocamento_meses: number;
pontos: ScpFlowPoint[];
fluxos_mensais: number[];
}
export interface SimularSecundarioComPerfilScpInput
extends MontarFluxoClienteScpInput,
Omit<SimulacaoSecundarioInput, "fluxos_mensais"> {}
export interface ResultadoSimulacaoSecundarioComPerfil
extends ResultadoSimulacaoSecundario {
fluxo_cliente: MontarFluxoClienteScpOutput;
}
export interface SimularConversaoScpConsorcioInput
extends SimularSecundarioComPerfilScpInput {
valor_imovel_base?: number;
desconto_imovel_percentual?: number;
percentual_entrada_imovel?: number;
agio_consorcio_percentual?: number;
taxa_custos_transacao_percentual?: number;
}
export interface ResultadoModoConversaoScpConsorcio {
natureza_cenario: string;
observacao: string;
valor_imovel_base: number;
desconto_imovel_percentual: number;
percentual_entrada_imovel: number;
agio_consorcio_percentual: number;
taxa_custos_transacao_percentual: number;
valor_imovel_com_desconto: number;
valor_entrada_imovel: number;
valor_credito_consorcio: number;
valor_custos_transacao: number;
investimento_total_conversao: number;
valor_saida_consorcio_secundario: number;
lucro_projetado_conversao: number;
roi_projetado_conversao: number | null;
}
export interface ResultadoSimulacaoConversaoScpConsorcio
extends ResultadoSimulacaoSecundarioComPerfil {
modo_conversao: ResultadoModoConversaoScpConsorcio;
}
export declare function calcularSimulacao(input: SimulacaoInput): ResultadoSimulacao;
export declare function calcularIndicadoresSecundario(
input: SimulacaoSecundarioInput
): ResultadoSimulacaoSecundario;
export declare function listarPerfisFluxoScpDefault(): {
clients: ScpClientDefault[];
patterns: ScpFlowPatternSummary[];
};
export declare function montarFluxoClienteScp(
input: MontarFluxoClienteScpInput
): MontarFluxoClienteScpOutput;
export declare function simularSecundarioComPerfilScp(
input: SimularSecundarioComPerfilScpInput
): ResultadoSimulacaoSecundarioComPerfil;
export declare function simularModoConversaoScpConsorcio(
input: SimularConversaoScpConsorcioInput
): ResultadoSimulacaoConversaoScpConsorcio;