export module Faisan { export type SimulationCommunaute = { puissance: number, autoconso: number, autoprod: number, fraisDivers: number, tarif: number, apport: number, interet: number, echeances: number, consoMoyenneFoyer: number, productible: number, degradation: number, inflation: number, ratio: number, enedis: number, tarifCRE: { limites: number[], prix: number[], inflation: number, }, coutElec: number, inflationElec: number, maintenance: number, turpe: number, turpeInjection: number, provisionOnduleurs: number, assurance: number, divers: number, ratioDcAc: number, dureeAmortissement: number, tauxIS: number, tauxDSRA: number, } export function newSimulationCommunaute(): SimulationCommunaute { return { puissance: 0, autoconso: 90, autoprod: 10, fraisDivers: 1000, tarif: 0.19, apport: 15000, interet: 4.5, echeances: 114, consoMoyenneFoyer: 2500, productible: 1100, degradation: 0.6, inflation: 1, ratio: 1.1, // €/Wc enedis: 1500, tarifCRE: { limites: [0, 9, 100], prix: [0.1339, 0.0803, 0.1312], inflation: 1, }, coutElec: 0.1887, // € inflationElec: 12, // % maintenance: 7, // €/kWc turpe: 16, // €/kWc turpeInjection: 0.0278, provisionOnduleurs: 0.10, // €/Wc assurance: 1, // % des travaux estimé entre 0.5% et 0.8% divers: 12, ratioDcAc: 0.8, dureeAmortissement: 10, // durée fiscale en années tauxIS: 25, tauxDSRA: 1.7, // % } } export type ListProjets = { ListProjets: null } export type ListProjetsResp = ({ id: string, name: string }[]) export type CreateProjet = { CreateProjet: { name?: string, porteur?: string, tel?: string, adresse?: string, simulation?: SimulationCommunaute, }} export type CreateProjetResp = null | string export type SaveProjet = { SaveProjet: { id: string, name?: string, porteur?: string, tel?: string, adresse?: string, simulation?: SimulationCommunaute, }} export type GetProjet = { GetProjet: string } export type GetProjetResp = null | { id: string, name?: string, porteur?: string, tel?: string, adresse?: string, simulation?: SimulationCommunaute, img?: string, } export type DelProjet = { DelProjet: { id: string, }} export type Cmd = ListProjets | CreateProjet | SaveProjet | DelProjet | GetProjet }