@open3cl/engine 1.11.2 → 1.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,193 +1,122 @@
1
- import { BaieVitree } from './baie-vitree.model';
2
- import { Climatisation } from './climatisation.model';
3
- import { Ets } from './ets.model';
4
- import { InstallationChauffage } from './installation-chauffage.model';
5
- import { InstallationEcs } from './installation-ecs.model';
6
- import { Mur } from './mur.model';
7
- import { PlancherBas, PlancherHaut } from './plancher.model';
8
- import { PontThermique } from './pont-thermique.model';
9
- import { Porte } from './porte.model';
10
- import { ProductionElecEnr } from './production-elec-enr.model';
11
- import { Sortie } from './sortie.model';
12
- import { Ventilation } from './ventilation.model';
1
+ import type {
2
+ XsdAdministratif,
3
+ XsdAdministratifDiagnostiqueur,
4
+ XsdAdministratifGeolocalisation,
5
+ XsdAdministratifInformationFormulaireConsentement,
6
+ XsdDpe,
7
+ XsdDpeImmeuble,
8
+ XsdDpeImmeubleLogementVisite,
9
+ XsdLogement,
10
+ XsdLogementCaracteristiqueGenerale,
11
+ XsdLogementEnveloppe,
12
+ XsdLogementMeteo,
13
+ XsdTAdresse
14
+ } from './dpe-xsd.generated';
15
+ import type { BaieVitree } from './baie-vitree.model';
16
+ import type { Climatisation } from './climatisation.model';
17
+ import type { Ets } from './ets.model';
18
+ import type { InstallationChauffage } from './installation-chauffage.model';
19
+ import type { InstallationEcs } from './installation-ecs.model';
20
+ import type { Mur } from './mur.model';
21
+ import type { PlancherBas, PlancherHaut } from './plancher.model';
22
+ import type { PontThermique } from './pont-thermique.model';
23
+ import type { Porte } from './porte.model';
24
+ import type { ProductionElecEnr } from './production-elec-enr.model';
25
+ import type { Sortie } from './sortie.model';
26
+ import type { Ventilation } from './ventilation.model';
27
+
28
+ // Types issus du XSD (générés) : voir dpe-xsd.generated.ts
29
+ export type Administratif = XsdAdministratif;
30
+ export type Diagnostiqueur = XsdAdministratifDiagnostiqueur;
31
+ export type Geolocalisation = XsdAdministratifGeolocalisation;
32
+ export type Adresse = XsdTAdresse;
33
+ /** Nom historique ; le XSD 2.7 parle de `information_formulaire_consentement`. */
34
+ export type InformationConsentementProprietaire = XsdAdministratifInformationFormulaireConsentement;
35
+ export type DpeImmeuble = XsdDpeImmeuble;
36
+ export type LogementVisite = XsdDpeImmeubleLogementVisite;
37
+ export type CaracteristiqueGenerale = XsdLogementCaracteristiqueGenerale;
38
+ export type Meteo = XsdLogementMeteo;
13
39
 
14
40
  /**
15
- * @see https://gitlab.com/observatoire-dpe/observatoire-dpe/-/blob/master/modele_donnee/DPE_complet.xsd?ref_type=heads
41
+ * Données de calcul propres à Open3CL (absentes du XSD) : séries mensuelles conservées entre les
42
+ * étapes du moteur.
16
43
  */
17
- export interface Dpe {
18
- hashkey: string;
19
- id: string;
20
- version: string;
21
- numero_dpe: string;
22
- statut: string;
23
- administratif: Administratif;
24
- dpe_immeuble?: DpeImmeuble;
25
- logement?: Logement;
26
- tertiaire?: Tertiaire;
27
- logement_neuf?: LogementNeuf;
28
- descriptif_enr_collection: any; // Pas traité pour l'instant
29
- descriptif_simplifie_collection: any; // Pas traité pour l'instant
30
- fiche_technique_collection: any; // Pas traité pour l'instant
31
- justificatif_collection: any; // Pas traité pour l'instant
32
- descriptif_geste_entretien_collection: any; // Pas traité pour l'instant
33
- descriptif_travaux: any; // Pas traité pour l'instant
34
- }
35
-
36
- export interface Administratif {
37
- dpe_a_remplacer?: string;
38
- reference_interne_projet?: string;
39
- motif_remplacement?: string;
40
- dpe_immeuble_associe?: string;
41
- enum_version_id: string;
42
- date_visite_diagnostiqueur: string;
43
- nom_proprietaire?: string;
44
- siren_proprietaire?: string;
45
- nom_proprietaire_installation_commune?: string;
46
- date_etablissement_dpe: string;
47
- enum_modele_dpe_id: string;
48
- diagnostiqueur: Diagnostiqueur;
49
- geolocalisation: Geolocalisation;
50
- consentement_proprietaire?: boolean;
51
- information_consentement_proprietaire?: InformationConsentementProprietaire;
52
- }
53
-
54
- export interface Diagnostiqueur {
55
- usr_logiciel_id: string;
56
- version_logiciel: string;
57
- version_moteur_calcul?: string;
58
- nom_diagnostiqueur: string;
59
- prenom_diagnostiqueur: string;
60
- mail_diagnostiqueur: string;
61
- telephone_diagnostiqueur: string;
62
- adresse_diagnostiqueur: string;
63
- entreprise_diagnostiqueur: string;
64
- numero_certification_diagnostiqueur: string;
65
- organisme_certificateur: string;
66
- }
67
-
68
- export interface DpeImmeuble {
69
- logement_visite_collection: LogementVisite[];
70
- }
71
-
72
- export interface LogementVisite {
73
- description: string;
74
- enum_position_etage_logement_id: string;
75
- enum_typologie_logement_id: string;
76
- surface_habitable_logement: number;
77
- }
78
-
79
- export interface Geolocalisation {
80
- invar_logement?: string;
81
- numero_fiscal_local?: string;
82
- id_batiment_rnb?: string;
83
- rpls_log_id?: string;
84
- rpls_org_id?: string;
85
- idpar?: string;
86
- immatriculation_copropriete?: string;
87
- adresses?: {
88
- adresse_bien: Adresse;
89
- adresse_proprietaire: Adresse;
90
- adresse_proprietaire_installation_commune: Adresse;
91
- };
92
- }
93
-
94
- export interface Adresse {
95
- adresse_brut: string;
96
- code_postal_brut: string;
97
- nom_commune_brut: string;
98
- label_brut: string;
99
- label_brut_avec_complement: string;
100
- enum_statut_geocodage_ban_id: string;
101
- ban_date_appel: string;
102
- ban_id?: string;
103
- ban_id_ban_adresse?: string;
104
- ban_label?: string;
105
- ban_housenumber?: string;
106
- ban_street?: string;
107
- ban_citycode?: string;
108
- ban_postcode?: string;
109
- ban_city?: string;
110
- ban_type?: string;
111
- ban_score?: string;
112
- ban_x?: string;
113
- compl_nom_residence?: string;
114
- compl_ref_batiment?: string;
115
- compl_etage_appartement?: string;
116
- compl_ref_cage_escalier?: string;
117
- compl_ref_logement?: string;
118
- }
119
-
120
- export interface InformationConsentementProprietaire {
121
- nom_proprietaire: string;
122
- personne_morale: boolean;
123
- siren_proprietaire?: string;
124
- telephone?: string;
125
- mail?: string;
126
- label_adresse: string;
127
- label_adresse_avec_complement: string;
128
- }
129
-
130
- export interface CaracteristiqueGenerale {
131
- annee_construction?: number;
132
- enum_periode_construction_id: number;
133
- enum_methode_application_dpe_log_id: number;
134
- enum_calcul_echantillonnage_id?: number;
135
- surface_habitable_logement?: number;
136
- nombre_niveau_immeuble?: number;
137
- nombre_niveau_logement?: number;
138
- hsp: number;
139
- surface_habitable_immeuble?: number;
140
- surface_tertiaire_immeuble?: number;
141
- nombre_appartement?: number;
142
- appartement_non_visite: boolean;
44
+ export interface LogementDonneesCalcul {
45
+ apportsInterneCh: { [key: string]: number };
46
+ apportsInterneDepensier: { [key: string]: number };
47
+ apportsSolaire: { [key: string]: number };
48
+ besoinChauffageHP: { [key: string]: number };
49
+ besoinChauffageDepensierHP: { [key: string]: number };
143
50
  }
144
51
 
145
- export interface Meteo {
146
- enum_zone_climatique_id?: number;
147
- altitude: number;
148
- enum_classe_altitude_id: number;
149
- batiment_materiaux_anciens: boolean;
52
+ /** Enveloppe : collections typées avec les modèles enrichis (voir *.model.ts). */
53
+ export interface Enveloppe extends Omit<
54
+ XsdLogementEnveloppe,
55
+ | 'mur_collection'
56
+ | 'plancher_bas_collection'
57
+ | 'plancher_haut_collection'
58
+ | 'baie_vitree_collection'
59
+ | 'porte_collection'
60
+ | 'ets_collection'
61
+ | 'pont_thermique_collection'
62
+ > {
63
+ mur_collection: { mur: Mur[] };
64
+ plancher_bas_collection: { plancher_bas: PlancherBas[] };
65
+ plancher_haut_collection: { plancher_haut: PlancherHaut[] };
66
+ baie_vitree_collection: { baie_vitree: BaieVitree[] };
67
+ porte_collection: { porte: Porte[] };
68
+ /** Le XSD autorise plusieurs `ets` ; le parseur du moteur ne les met pas en tableau si un seul. */
69
+ ets_collection: { ets: Ets | Ets[] };
70
+ pont_thermique_collection: { pont_thermique: PontThermique[] };
150
71
  }
151
72
 
152
- export interface Logement {
153
- caracteristique_generale: CaracteristiqueGenerale;
154
- meteo: Meteo;
73
+ /**
74
+ * Logement : type XSD, avec les installations ECS/chauffage enrichies des `donnee_utilisateur`
75
+ * propres à Open3CL, et `donnees_de_calcul` (hors XSD).
76
+ */
77
+ export interface Logement extends Omit<
78
+ XsdLogement,
79
+ | 'enveloppe'
80
+ | 'ventilation_collection'
81
+ | 'climatisation_collection'
82
+ | 'production_elec_enr'
83
+ | 'sortie'
84
+ | 'installation_ecs_collection'
85
+ | 'installation_chauffage_collection'
86
+ > {
155
87
  enveloppe: Enveloppe;
156
88
  ventilation_collection: { ventilation: Ventilation[] };
157
89
  climatisation_collection: { climatisation: Climatisation[] };
158
- production_elec_enr?: ProductionElecEnr;
90
+ production_elec_enr?: ProductionElecEnr | null;
91
+ sortie: Sortie;
159
92
  installation_ecs_collection: { installation_ecs: InstallationEcs[] };
160
93
  installation_chauffage_collection: { installation_chauffage: InstallationChauffage[] };
161
- sortie: Sortie;
162
94
  donnees_de_calcul: LogementDonneesCalcul;
163
95
  }
164
96
 
165
- export interface LogementDonneesCalcul {
166
- apportsInterneCh: { [key: string]: number };
167
- apportsInterneDepensier: { [key: string]: number };
168
- apportsSolaire: { [key: string]: number };
169
- besoinChauffageHP: { [key: string]: number };
170
- besoinChauffageDepensierHP: { [key: string]: number };
171
- }
172
-
97
+ /**
98
+ * Le moteur traite `tertiaire` et `logement_neuf` comme un logement (le XSD les décrit
99
+ * différemment : cf. XsdTertiaire / XsdLogementNeuf dans dpe-xsd.generated.ts).
100
+ */
173
101
  export interface Tertiaire extends Logement {}
174
102
 
175
103
  export interface LogementNeuf extends Logement {}
176
104
 
177
- export interface Enveloppe {
178
- inertie: {
179
- inertie_plancher_bas_lourd: boolean;
180
- inertie_plancher_haut_lourd: boolean;
181
- inertie_paroi_verticale_lourd: boolean;
182
- enum_classe_inertie_id: number;
183
- };
184
- mur_collection: { mur: Mur[] };
185
- plancher_bas_collection: { plancher_bas: PlancherBas[] };
186
- plancher_haut_collection: { plancher_haut: PlancherHaut[] };
187
- baie_vitree_collection: { baie_vitree: BaieVitree[] };
188
- porte_collection: { porte: Porte[] };
189
- ets_collection: { ets: Ets };
190
- pont_thermique_collection: { pont_thermique: PontThermique[] };
105
+ /**
106
+ * @see https://gitlab.com/observatoire-dpe/observatoire-dpe/-/blob/master/modele_donnee/DPEv2.7.xsd
107
+ */
108
+ export interface Dpe extends Omit<
109
+ XsdDpe,
110
+ 'logement' | 'tertiaire' | 'logement_neuf' | 'administratif'
111
+ > {
112
+ /** Hors XSD : numéro DPE ajouté par le moteur / l'API */
113
+ numero_dpe: string;
114
+ /** Hors XSD : statut du DPE */
115
+ statut: string;
116
+ administratif: Administratif;
117
+ logement?: Logement;
118
+ tertiaire?: Tertiaire;
119
+ logement_neuf?: LogementNeuf;
191
120
  }
192
121
 
193
122
  export interface DE {
@@ -205,3 +134,5 @@ export enum TypeDpe {
205
134
  APPARTEMENT = 'APPARTEMENT',
206
135
  IMMEUBLE = 'IMMEUBLE'
207
136
  }
137
+
138
+ export type FullDpe = Dpe;
@@ -1,19 +1,11 @@
1
- import { BaieEts } from './baie-ets.model';
2
- import { DE } from './dpe.model';
1
+ // Alias des types générés depuis le XSD DPE (voir dpe-xsd.generated.ts). Les extensions propres
2
+ // à Open3CL se déclarent ici (hors fichier généré) pour survivre à la régénération.
3
+ import type {
4
+ XsdLogementEnveloppeEts,
5
+ XsdLogementEnveloppeEtsDonneeEntree,
6
+ XsdLogementEnveloppeEtsDonneeIntermediaire
7
+ } from './dpe-xsd.generated';
3
8
 
4
- export interface Ets {
5
- donnee_entree?: EtsDE;
6
- donnee_intermediaire?: EtsDI;
7
- baie_ets_collection?: { baie_ets: BaieEts[] };
8
- }
9
-
10
- export interface EtsDE extends DE {
11
- tv_coef_reduction_deperdition_id?: number; // TV
12
- enum_cfg_isolation_lnc_id?: number; // ENUM cfg_isolation_lnc
13
- tv_coef_transparence_ets_id: number; // TV
14
- }
15
-
16
- export interface EtsDI {
17
- coef_transparence_ets: number;
18
- bver: number;
19
- }
9
+ export type Ets = XsdLogementEnveloppeEts;
10
+ export type EtsDE = XsdLogementEnveloppeEtsDonneeEntree;
11
+ export type EtsDI = XsdLogementEnveloppeEtsDonneeIntermediaire;
@@ -1,110 +1,48 @@
1
- import { DE } from './dpe.model';
2
- import { GenerateurEcsDU } from './installation-ecs.model';
1
+ import type {
2
+ XsdLogementInstallationChauffage,
3
+ XsdLogementInstallationChauffageDonneeEntree,
4
+ XsdLogementInstallationChauffageDonneeIntermediaire,
5
+ XsdLogementInstallationChauffageEmetteurChauffage,
6
+ XsdLogementInstallationChauffageEmetteurChauffageDonneeEntree,
7
+ XsdLogementInstallationChauffageEmetteurChauffageDonneeIntermediaire,
8
+ XsdLogementInstallationChauffageGenerateurChauffage,
9
+ XsdLogementInstallationChauffageGenerateurChauffageDonneeEntree,
10
+ XsdLogementInstallationChauffageGenerateurChauffageDonneeIntermediaire
11
+ } from './dpe-xsd.generated';
3
12
 
4
- export interface InstallationChauffage {
5
- donnee_entree?: InstallationChauffageDE;
6
- donnee_intermediaire?: InstallationChauffageDI;
7
- emetteur_chauffage_collection?: { emetteur_chauffage: EmetteurChauffage[] };
8
- generateur_chauffage_collection?: { generateur_chauffage: GenerateurChauffage[] };
9
- }
10
-
11
- export interface InstallationChauffageDE extends DE {
12
- surface_chauffee: number;
13
- nombre_logement_echantillon?: number;
14
- rdim: number;
15
- nombre_niveau_installation_ch: number;
16
- enum_cfg_installation_ch_id: number;
17
- ratio_virtualisation?: number;
18
- coef_ifc?: number;
19
- cle_repartition_ch?: number;
20
- enum_type_installation_id: number;
21
- enum_methode_calcul_conso_id: number;
22
- enum_methode_saisie_fact_couv_sol_id?: number;
23
- tv_facteur_couverture_solaire_id?: number;
24
- fch_saisi?: number;
25
- }
26
-
27
- export interface InstallationChauffageDI {
28
- besoin_ch: number;
29
- besoin_ch_depensier: number;
30
- production_ch_solaire?: number;
31
- fch?: number;
32
- conso_ch: number;
33
- conso_ch_depensier: number;
34
- }
35
-
36
- export interface EmetteurChauffage {
37
- donnee_entree?: EmetteurChauffageDE;
38
- donnee_intermediaire?: EmetteurChauffageDI;
39
- }
40
-
41
- export interface EmetteurChauffageDE extends DE {
42
- surface_chauffee: number;
43
- tv_rendement_emission_id: number;
44
- tv_rendement_distribution_ch_id: number;
45
- tv_rendement_regulation_id: number;
46
- enum_type_emission_distribution_id: number;
47
- tv_intermittence_id: number;
48
- reseau_distribution_isole?: boolean;
49
- enum_equipement_intermittence_id: number;
50
- enum_type_regulation_id: number;
51
- enum_periode_installation_emetteur_id?: number;
52
- enum_type_chauffage_id: number;
53
- enum_temp_distribution_ch_id: number;
54
- enum_lien_generateur_emetteur_id: number;
55
- }
56
-
57
- export interface EmetteurChauffageDI {
58
- i0: number;
59
- rendement_emission: number;
60
- rendement_distribution: number;
61
- rendement_regulation: number;
62
- }
63
-
64
- export interface GenerateurChauffage {
65
- donnee_entree?: GenerateurChauffageDE;
66
- donnee_utilisateur?: GenerateurChauffageDU;
67
- donnee_intermediaire?: GenerateurChauffageDI;
68
- }
69
-
70
- export interface GenerateurChauffageDE extends DE {
71
- reference_generateur_mixte?: number;
72
- ref_produit_generateur_ch?: number;
73
- enum_type_generateur_ch_id: number;
74
- enum_usage_generateur_id: number;
75
- enum_type_energie_id: number;
76
- position_volume_chauffe: number;
77
- tv_rendement_generation_id?: number;
78
- tv_scop_id?: number;
79
- tv_temp_fonc_100_id?: number;
80
- tv_temp_fonc_30_id?: number;
81
- tv_generateur_combustion_id?: number;
82
- tv_reseau_chaleur_id?: number;
83
- identifiant_reseau_chaleur?: string;
84
- date_arrete_reseau_chaleur?: string;
85
- priorite_generateur_cascade?: number;
86
- presence_ventouse?: number;
87
- presence_regulation_combustion?: boolean;
88
- enum_methode_saisie_carac_sys_id: number;
89
- enum_lien_generateur_emetteur_id: number;
13
+ /** + champ Open3CL hors XSD : `ficheTechniqueComptage` (fiche technique). */
14
+ export type InstallationChauffageDE = XsdLogementInstallationChauffageDonneeEntree & {
15
+ ficheTechniqueComptage?: any;
16
+ };
17
+ export type InstallationChauffageDI = XsdLogementInstallationChauffageDonneeIntermediaire;
18
+ export interface EmetteurChauffage extends Omit<
19
+ XsdLogementInstallationChauffageEmetteurChauffage,
20
+ 'donnee_intermediaire'
21
+ > {
22
+ donnee_intermediaire: EmetteurChauffageDI;
90
23
  }
24
+ export type EmetteurChauffageDE = XsdLogementInstallationChauffageEmetteurChauffageDonneeEntree;
25
+ /** + champ calculé Open3CL hors XSD : `lb` (longueur de boucle). */
26
+ export type EmetteurChauffageDI =
27
+ XsdLogementInstallationChauffageEmetteurChauffageDonneeIntermediaire & {
28
+ lb?: number;
29
+ };
30
+ export type GenerateurChauffageDE = XsdLogementInstallationChauffageGenerateurChauffageDonneeEntree;
31
+ export type GenerateurChauffageDI =
32
+ XsdLogementInstallationChauffageGenerateurChauffageDonneeIntermediaire;
91
33
 
92
- export interface GenerateurChauffageDI {
93
- scop?: number;
94
- pn?: number;
95
- qp0?: number;
96
- pveilleuse?: number;
97
- temp_fonc_30?: number;
98
- temp_fonc_100?: number;
99
- rpn?: number;
100
- rpint?: number;
101
- conso_ch: number;
102
- conso_ch_depensier: number;
34
+ export enum TypeGenerateur {
35
+ CHAUDIERE = 'CHAUDIERE',
36
+ OTHER = 'OTHER'
103
37
  }
104
38
 
39
+ /** Donnée utilisateur propre à Open3CL (absente du XSD). */
105
40
  export interface GenerateurChauffageDU {
41
+ /** Valeurs intermédiaires ajoutées dynamiquement par le moteur (ex. conso_ch_appoint_bijonction). */
42
+ [key: string]: any;
106
43
  ratio_virtualisation?: number;
107
44
  typeGenerateur?: TypeGenerateur;
45
+ isCombustionGenerator?: boolean;
108
46
  combustion: boolean;
109
47
  pac: boolean;
110
48
  generateur?: {
@@ -119,7 +57,16 @@ export interface GenerateurChauffageDU {
119
57
  };
120
58
  }
121
59
 
122
- export enum TypeGenerateur {
123
- CHAUDIERE = 'CHAUDIERE',
124
- OTHER = 'OTHER'
60
+ export interface GenerateurChauffage extends XsdLogementInstallationChauffageGenerateurChauffage {
61
+ donnee_utilisateur?: GenerateurChauffageDU;
62
+ }
63
+
64
+ export interface InstallationChauffage extends Omit<
65
+ XsdLogementInstallationChauffage,
66
+ 'donnee_entree' | 'emetteur_chauffage_collection' | 'generateur_chauffage_collection'
67
+ > {
68
+ donnee_entree: InstallationChauffageDE;
69
+ donnee_utilisateur?: Record<string, any>; // hors XSD
70
+ emetteur_chauffage_collection: { emetteur_chauffage: EmetteurChauffage[] };
71
+ generateur_chauffage_collection: { generateur_chauffage: GenerateurChauffage[] };
125
72
  }
@@ -1,41 +1,18 @@
1
- import { DE } from './dpe.model';
2
-
3
- export interface InstallationEcs {
4
- donnee_entree?: InstallationEcsDE;
5
- donnee_intermediaire?: InstallationEcsDI;
6
- donnee_utilisateur?: InstallationEcsDU;
7
- generateur_ecs_collection?: { generateur_ecs: GenerateurEcs[] };
8
- }
9
-
10
- export interface InstallationEcsDE extends DE {
11
- enum_cfg_installation_ecs_id: number;
12
- enum_type_installation_id: number;
13
- enum_methode_calcul_conso_id: number;
14
- ratio_virtualisation?: number;
15
- cle_repartition_ecs?: number;
16
- surface_habitable: number;
17
- nombre_logement: number;
18
- rdim: number;
19
- nombre_niveau_installation_ecs: number;
20
- fecs_saisi?: number;
21
- tv_facteur_couverture_solaire_id?: number;
22
- enum_methode_saisie_fact_couv_sol_id?: number;
23
- enum_type_installation_solaire_id?: number;
24
- tv_rendement_distribution_ecs_id: number;
25
- enum_bouclage_reseau_ecs_id: number;
26
- reseau_distribution_isole: boolean;
27
- }
28
-
29
- export interface InstallationEcsDI {
30
- rendement_distribution: number;
31
- besoin_ecs: number;
32
- besoin_ecs_depensier: number;
33
- fecs?: number;
34
- production_ecs_solaire?: number;
35
- conso_ecs: number;
36
- conso_ecs_depensier: number;
37
- }
38
-
1
+ import type {
2
+ XsdLogementInstallationEcs,
3
+ XsdLogementInstallationEcsDonneeEntree,
4
+ XsdLogementInstallationEcsDonneeIntermediaire,
5
+ XsdLogementInstallationEcsGenerateurEcs,
6
+ XsdLogementInstallationEcsGenerateurEcsDonneeEntree,
7
+ XsdLogementInstallationEcsGenerateurEcsDonneeIntermediaire
8
+ } from './dpe-xsd.generated';
9
+
10
+ export type InstallationEcsDE = XsdLogementInstallationEcsDonneeEntree;
11
+ export type InstallationEcsDI = XsdLogementInstallationEcsDonneeIntermediaire;
12
+ export type GenerateurEcsDE = XsdLogementInstallationEcsGenerateurEcsDonneeEntree;
13
+ export type GenerateurEcsDI = XsdLogementInstallationEcsGenerateurEcsDonneeIntermediaire;
14
+
15
+ /** Donnée utilisateur propre à Open3CL (absente du XSD) : valeurs intermédiaires du moteur. */
39
16
  export interface InstallationEcsDU {
40
17
  QdwIndVc: { conventionnel: number; depensier: number };
41
18
  QdwColVc: { conventionnel: number; depensier: number };
@@ -43,47 +20,20 @@ export interface InstallationEcsDU {
43
20
  QgwRecuperable: number;
44
21
  }
45
22
 
46
- export interface GenerateurEcs {
47
- donnee_entree?: GenerateurEcsDE;
48
- donnee_utilisateur?: GenerateurEcsDU;
49
- donnee_intermediaire?: GenerateurEcsDI;
50
- }
51
-
52
- export interface GenerateurEcsDE extends DE {
53
- reference_generateur_mixte?: string;
54
- enum_type_generateur_ecs_id: number;
55
- ref_produit_generateur_ecs?: string;
56
- enum_usage_generateur_id: number;
57
- enum_type_energie_id: number;
58
- tv_generateur_combustion_id?: number;
59
- enum_methode_saisie_carac_sys_id: number;
60
- tv_pertes_stockage_id?: number;
61
- tv_scop_id?: number;
62
- enum_periode_installation_ecs_thermo_id?: number;
63
- identifiant_reseau_chaleur?: string;
64
- date_arrete_reseau_chaleur?: string;
65
- tv_reseau_chaleur_id?: number;
66
- enum_type_stockage_ecs_id: number;
67
- position_volume_chauffe: number;
68
- position_volume_chauffe_stockage?: number;
69
- volume_stockage: number;
70
- presence_ventouse?: boolean;
23
+ /** Donnée utilisateur propre à Open3CL (absente du XSD). */
24
+ export interface GenerateurEcsDU {
25
+ [key: string]: any;
26
+ Qgw?: number;
71
27
  }
72
28
 
73
- export interface GenerateurEcsDI {
74
- pn?: number;
75
- qp0?: number;
76
- pveilleuse?: number;
77
- rpn?: number;
78
- cop?: number;
79
- ratio_besoin_ecs: number;
80
- rendement_generation?: number;
81
- rendement_generation_stockage?: number;
82
- conso_ecs: number;
83
- conso_ecs_depensier: number;
84
- rendement_stockage?: number;
29
+ export interface GenerateurEcs extends XsdLogementInstallationEcsGenerateurEcs {
30
+ donnee_utilisateur?: GenerateurEcsDU;
85
31
  }
86
32
 
87
- export interface GenerateurEcsDU {
88
- Qgw?: number;
33
+ export interface InstallationEcs extends Omit<
34
+ XsdLogementInstallationEcs,
35
+ 'generateur_ecs_collection'
36
+ > {
37
+ donnee_utilisateur?: InstallationEcsDU;
38
+ generateur_ecs_collection: { generateur_ecs: GenerateurEcs[] };
89
39
  }
@@ -1,39 +1,11 @@
1
- import { DE } from './dpe.model';
1
+ // Alias des types générés depuis le XSD DPE (voir dpe-xsd.generated.ts). Les extensions propres
2
+ // à Open3CL se déclarent ici (hors fichier généré) pour survivre à la régénération.
3
+ import type {
4
+ XsdLogementEnveloppeMur,
5
+ XsdLogementEnveloppeMurDonneeEntree,
6
+ XsdLogementEnveloppeMurDonneeIntermediaire
7
+ } from './dpe-xsd.generated';
2
8
 
3
- export interface Mur {
4
- donnee_entree?: MurDE;
5
- donnee_intermediaire?: MurDI;
6
- }
7
-
8
- export interface MurDE extends DE {
9
- reference_lnc?: string;
10
- tv_coef_reduction_deperdition_id?: number; // TV
11
- surface_aiu?: number;
12
- surface_aue?: number;
13
- enum_cfg_isolation_lnc_id?: number; // ENUM cfg_isolation_lnc
14
- enum_type_adjacence_id?: number; // ENUM type_adjacence
15
- enum_orientation_id?: number; // ENUM orientation
16
- surface_paroi_totale?: number;
17
- surface_paroi_opaque?: number;
18
- umur0_saisi?: number;
19
- tv_umur0_id?: number; // TV
20
- epaisseur_structure?: number;
21
- enum_materiaux_structure_mur_id?: number; // ENUM materiaux_structure_mur
22
- enum_methode_saisie_u0_id?: number; // ENUM methode_saisie_u0
23
- enduit_isolant_paroi_ancienne?: boolean;
24
- umur_saisi?: number;
25
- enum_type_doublage_id?: number; // ENUM type_doublage
26
- enum_type_isolation_id?: number; // ENUM type_isolation
27
- enum_periode_isolation_id?: number; // ENUM periode_isolation
28
- resistance_isolation?: number;
29
- epaisseur_isolation?: number;
30
- tv_umur_id?: number; // TV
31
- enum_methode_saisie_u_id?: number; // ENUM methode_saisie_u
32
- paroi_lourde?: boolean;
33
- }
34
-
35
- export interface MurDI {
36
- umur: number;
37
- umur0: number;
38
- b: number;
39
- }
9
+ export type Mur = XsdLogementEnveloppeMur;
10
+ export type MurDE = XsdLogementEnveloppeMurDonneeEntree;
11
+ export type MurDI = XsdLogementEnveloppeMurDonneeIntermediaire;