@likewatt/models-front 1.103.0 → 1.105.0

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.
@@ -3,6 +3,7 @@ import { BuildingData } from '../site/BuildingData.types';
3
3
  import { ConsumptionIndexes } from '../site/ConsumptionIndexes.types';
4
4
  import { CustomerInfos } from '../site/CustomerInfos.types';
5
5
  import { DataSourceHistory } from '../site/DataSourceHistory.types';
6
+ import { OpenDataProfile } from '../site/OpenDataProfile.types';
6
7
  import { ExtractionData } from '../site/ExtractionData.types';
7
8
  import { EnergyPrice } from '../site/EnergyPrice.types';
8
9
  import { EnergyPriceTempo } from '../site/EnergyPriceTempo.types';
@@ -107,6 +108,11 @@ export interface Site {
107
108
  */
108
109
  extractionType?: 'COURBE' | 'INDEX' | 'HYBRIDE';
109
110
  dataSourceHistory: DataSourceHistory[];
111
+ /**
112
+ * Trace de la récupération d'une courbe de charge depuis l'Open Data Enedis,
113
+ * quand `dataSource` vaut `OPENDATA`. Absent sur tout site alimenté autrement.
114
+ */
115
+ openDataProfile?: OpenDataProfile;
110
116
  disabled: boolean;
111
117
  strasbourgData?: boolean;
112
118
  enedisData?: boolean;
@@ -408,6 +408,19 @@ export declare const SiteConstants: {
408
408
  readonly DAILY_INDEX: "INDEX J.";
409
409
  readonly HYBRID: "HYBRIDE";
410
410
  readonly STRASBOURG: "STRASBOURG";
411
+ /**
412
+ * Courbe de charge reconstituée depuis l'Open Data Enedis : moyenne des
413
+ * 500 courbes fictives du secteur, re-datée sur une année civile. Aucune
414
+ * mise à l'échelle — le niveau est celui du secteur.
415
+ *
416
+ * Distincte de `PROFILE`, qui reste le flux des fichiers de coefficients.
417
+ * Les deux partagent le même onglet côté front, mais surtout pas le même
418
+ * traitement : `normalizeDataSourceTab` doit mapper `OPENDATA` vers l'onglet
419
+ * `PROFILE`, sans confondre les deux valeurs stockées.
420
+ *
421
+ * Détails de la récupération dans `Site.openDataProfile`.
422
+ */
423
+ readonly OPENDATA: "OPENDATA";
411
424
  };
412
425
  readonly purchaseContractType: {
413
426
  readonly 'CARD/T': "CARD/T";
@@ -76,6 +76,19 @@ exports.SiteConstants = {
76
76
  DAILY_INDEX: 'INDEX J.',
77
77
  HYBRID: 'HYBRIDE',
78
78
  STRASBOURG: 'STRASBOURG',
79
+ /**
80
+ * Courbe de charge reconstituée depuis l'Open Data Enedis : moyenne des
81
+ * 500 courbes fictives du secteur, re-datée sur une année civile. Aucune
82
+ * mise à l'échelle — le niveau est celui du secteur.
83
+ *
84
+ * Distincte de `PROFILE`, qui reste le flux des fichiers de coefficients.
85
+ * Les deux partagent le même onglet côté front, mais surtout pas le même
86
+ * traitement : `normalizeDataSourceTab` doit mapper `OPENDATA` vers l'onglet
87
+ * `PROFILE`, sans confondre les deux valeurs stockées.
88
+ *
89
+ * Détails de la récupération dans `Site.openDataProfile`.
90
+ */
91
+ OPENDATA: 'OPENDATA',
79
92
  },
80
93
  purchaseContractType: {
81
94
  'CARD/T': 'CARD/T',
package/dist/index.d.ts CHANGED
@@ -39,6 +39,7 @@ export * from './site/BuildingStats.types';
39
39
  export * from './site/ConsumptionIndexes.types';
40
40
  export * from './site/CustomerInfos.types';
41
41
  export * from './site/DataSourceHistory.types';
42
+ export * from './site/OpenDataProfile.types';
42
43
  export * from './site/EnergyPrice.types';
43
44
  export * from './site/ExtractionData.types';
44
45
  export * from './site/EnergyPriceTempo.types';
package/dist/index.js CHANGED
@@ -58,6 +58,7 @@ __exportStar(require("./site/BuildingStats.types"), exports);
58
58
  __exportStar(require("./site/ConsumptionIndexes.types"), exports);
59
59
  __exportStar(require("./site/CustomerInfos.types"), exports);
60
60
  __exportStar(require("./site/DataSourceHistory.types"), exports);
61
+ __exportStar(require("./site/OpenDataProfile.types"), exports);
61
62
  __exportStar(require("./site/EnergyPrice.types"), exports);
62
63
  __exportStar(require("./site/ExtractionData.types"), exports);
63
64
  __exportStar(require("./site/EnergyPriceTempo.types"), exports);
@@ -0,0 +1,77 @@
1
+ /** Catégorie fonctionnelle du profil Open Data, telle que présentée à l'utilisateur. */
2
+ export type EnedisOpenDataCategory =
3
+ /** Secteur d'activité (code NAF), décliné en Professionnels / Entreprises. */
4
+ 'NAF'
5
+ /** Type de profil (RES/PRO/ENT) décliné par plage de puissance souscrite. */
6
+ | 'PROFILE';
7
+ /**
8
+ * Segment de la catégorie NAF. Discriminant et non décoratif : 3600, 7010 et
9
+ * 8411 existent dans les deux segments, donc le code NAF seul ne désigne pas un
10
+ * dataset.
11
+ */
12
+ export type EnedisOpenDataSegment = 'PRO' | 'ENT';
13
+ /**
14
+ * Type de profil de la catégorie PROFILE. Restreint à ce que l'Open Data
15
+ * publie : ni `RES5` ni `RES3-F` n'y figurent, contrairement aux fichiers de
16
+ * coefficients `.xlsx`.
17
+ */
18
+ export type EnedisOpenDataProfileType = 'RES1' | 'RES11' | 'RES2' | 'PRO1' | 'PRO2' | 'ENT1' | 'ENT3';
19
+ /**
20
+ * Profils de courbes de charge publiés par l'Open Data Enedis.
21
+ *
22
+ * La valeur **est** le suffixe du slug du dataset Data Fair :
23
+ * `courbes-de-charges-fictives-<valeur>`. C'est cette valeur que le front envoie
24
+ * au back, qui en déduit seul la catégorie, le segment et le code ou la plage.
25
+ *
26
+ * Union plate plutôt que produit (catégorie × segment × code) parce que le
27
+ * catalogue Enedis est creux : `ENT1` n'a pas la tranche 50-120 kVA alors que
28
+ * `ENT3` a 36-120, et les codes NAF diffèrent d'un segment à l'autre.
29
+ *
30
+ * Pour bâtir des listes en cascade, appeler `GET /profile/opendata/catalog` sur
31
+ * la gateway : elle dérive l'arbre de l'enum et reste donc la seule source de
32
+ * vérité. Ne pas en tenir une copie ici — les deux paquets sont versionnés
33
+ * séparément, et une divergence se manifesterait par un secteur sélectionnable
34
+ * qui renvoie un 404 Enedis.
35
+ */
36
+ export type EnedisOpenDataProfile = 'pro-naf3600' | 'pro-naf3700' | 'pro-naf5510' | 'pro-naf5610' | 'pro-naf6831' | 'pro-naf7010' | 'pro-naf8411' | 'pro-naf8413' | 'pro-naf8790' | 'ent-naf10' | 'ent-naf55' | 'ent-naf3600' | 'ent-naf4711' | 'ent-naf7010' | 'ent-naf8411' | 'res1-3-6' | 'res11-6-9' | 'res11-9-18' | 'res2-3-6' | 'res2-6-9' | 'res2-9-12' | 'pro1-0-6' | 'pro1-6-12' | 'pro1-12-sup' | 'pro2-0-6' | 'pro2-6-12' | 'pro2-12-24' | 'pro2-24-sup' | 'ent1-36-50' | 'ent1-120-250' | 'ent1-250-sup' | 'ent3-36-120' | 'ent3-120-250' | 'ent3-250-sup';
37
+ /**
38
+ * Trace de la récupération d'une courbe de charge depuis l'Open Data Enedis.
39
+ * Écrit par le back, jamais par le front.
40
+ */
41
+ export interface OpenDataProfile {
42
+ category: EnedisOpenDataCategory;
43
+ /** Catégorie NAF uniquement. */
44
+ segment?: EnedisOpenDataSegment;
45
+ /** Catégorie NAF uniquement — `'10'`, `'55'`, `'3600'`… Chaîne, pas nombre. */
46
+ nafCode?: string;
47
+ /** Catégorie PROFILE uniquement. */
48
+ profileType?: EnedisOpenDataProfileType;
49
+ /** Catégorie PROFILE uniquement — `'3-6'`, `'6-12'`, `'250-sup'`. */
50
+ powerRange?: string;
51
+ /** Slug du dataset Data Fair, clé externe immuable. */
52
+ datasetSlug: string;
53
+ /**
54
+ * Bornes de la fenêtre réellement publiée par Enedis — 2023-11-01 → 2024-10-29.
55
+ * Traçabilité et attribution Etalab. Ce n'est **pas** la période de l'étude.
56
+ */
57
+ sourcePeriodStart?: Date | string;
58
+ sourcePeriodEnd?: Date | string;
59
+ /**
60
+ * Bornes de l'année civile servie, toujours 1er janvier → 31 décembre.
61
+ *
62
+ * C'est la période de l'étude, et celle que les composants raisonnant en
63
+ * années civiles doivent utiliser. Figée à la création du projet.
64
+ */
65
+ periodStart?: Date | string;
66
+ periodEnd?: Date | string;
67
+ retrievedAt?: Date | string;
68
+ /** Nombre de courbes agrégées pour produire la moyenne (500 nominalement). */
69
+ curveCount?: number;
70
+ /**
71
+ * Consommation annuelle du secteur, en kWh. Niveau livré, non surchargeable.
72
+ * Ordre de grandeur : l'écart intra-secteur mesuré va de 1 à 24.
73
+ */
74
+ referenceAnnualConsumptionKwh?: number;
75
+ /** Puissance souscrite déduite, en kVA, arrondie au palier normalisé. */
76
+ deducedSubscribedPowerKva?: number;
77
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likewatt/models-front",
3
- "version": "1.103.0",
3
+ "version": "1.105.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",