@fidusia/question-engine-dynamic 1.0.8 → 1.0.10

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.
package/README.md CHANGED
@@ -44,3 +44,9 @@ Pour modifier QuestionEngine :
44
44
 
45
45
 
46
46
 
47
+
48
+
49
+
50
+
51
+
52
+
@@ -66,7 +66,8 @@ export interface ChatbotConfig {
66
66
  }>;
67
67
  }
68
68
  /**
69
- * Obtient les IDs système avec fallback vers les valeurs par défaut
69
+ * Obtient les IDs système depuis la configuration
70
+ * ⚠️ AUCUN FALLBACK - Les IDs système doivent être chargés depuis la base de données
70
71
  */
71
72
  export declare function getSystemIds(config: ChatbotConfig): {
72
73
  budgetPriorityQuestionId: string;
@@ -77,40 +78,47 @@ export declare function getSystemIds(config: ChatbotConfig): {
77
78
  continueOtherSectorsModuleId: string;
78
79
  };
79
80
  /**
80
- * Obtient les mappings de priorité avec fallback vers les valeurs par défaut
81
+ * Obtient les mappings de priorité depuis la configuration
82
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
81
83
  */
82
84
  export declare function getPriorityMappings(config: ChatbotConfig): Record<string, string[]>;
83
85
  /**
84
- * Obtient les mappings de prestataires avec fallback vers les valeurs par défaut
86
+ * Obtient les mappings de prestataires depuis la configuration
87
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
85
88
  */
86
89
  export declare function getBookedProviderMappings(config: ChatbotConfig): Record<string, {
87
90
  moduleId: string;
88
91
  skipQuestion: string;
89
92
  }>;
90
93
  /**
91
- * Obtient les priorités de base avec fallback vers les valeurs par défaut
94
+ * Obtient les priorités de base depuis la configuration
95
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
92
96
  */
93
97
  export declare function getBasePriorities(config: ChatbotConfig): Record<string, number>;
94
98
  /**
95
- * Obtient les boosts de priorité avec fallback vers les valeurs par défaut
99
+ * Obtient les boosts de priorité depuis la configuration
100
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
96
101
  */
97
102
  export declare function getPriorityBoosts(config: ChatbotConfig): Record<string, Array<{
98
103
  moduleId: string;
99
104
  boost: number;
100
105
  }>>;
101
106
  /**
102
- * Obtient le mapping priorité -> prestataires avec fallback
107
+ * Obtient le mapping priorité -> prestataires depuis la configuration
108
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
103
109
  */
104
110
  export declare function getPriorityToBookedProviders(config: ChatbotConfig): Record<string, string[]>;
105
111
  /**
106
- * Obtient la configuration du calcul de priorité
112
+ * Obtient la configuration du calcul de priorité depuis la configuration
113
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
107
114
  */
108
115
  export declare function getPriorityCalculation(config: ChatbotConfig): {
109
116
  base: number;
110
117
  step: number;
111
118
  };
112
119
  /**
113
- * Obtient les comportements spéciaux avec fallbacks
120
+ * Obtient les comportements spéciaux depuis la configuration
121
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
114
122
  */
115
123
  export declare function getSpecialBehaviors(config: ChatbotConfig): {
116
124
  budgetPriority: {
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"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"}
@@ -1,80 +1,176 @@
1
- import { PRIORITY_TO_MODULES, BOOKED_PROVIDER_TO_MODULE, BASE_PRIORITIES, PRIORITY_BOOSTS, PRIORITY_TO_BOOKED_PROVIDERS } from './types';
1
+ // ⚠️ SUPPRIMÉ : Imports des constantes hardcodées
2
+ // Toutes les configurations doivent venir de la base de données via ChatbotConfig
2
3
  /**
3
- * Obtient les IDs système avec fallback vers les valeurs par défaut
4
+ * Obtient les IDs système depuis la configuration
5
+ * ⚠️ AUCUN FALLBACK - Les IDs système doivent être chargés depuis la base de données
4
6
  */
5
7
  export function getSystemIds(config) {
6
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
8
+ if (!config.systemIds) {
9
+ throw new Error('systemIds is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
10
+ }
11
+ // ⚠️ Tous les IDs système doivent être présents - pas de fallback
12
+ if (!config.systemIds.budgetPriorityQuestionId) {
13
+ throw new Error('systemIds.budgetPriorityQuestionId is required in ChatbotConfig.');
14
+ }
15
+ if (!config.systemIds.contactCorrectionQuestionId) {
16
+ throw new Error('systemIds.contactCorrectionQuestionId is required in ChatbotConfig.');
17
+ }
18
+ if (!config.systemIds.continueOtherSectorsQuestionId) {
19
+ throw new Error('systemIds.continueOtherSectorsQuestionId is required in ChatbotConfig.');
20
+ }
21
+ if (!config.systemIds.finalModuleId) {
22
+ throw new Error('systemIds.finalModuleId is required in ChatbotConfig.');
23
+ }
24
+ if (!config.systemIds.introModuleId) {
25
+ throw new Error('systemIds.introModuleId is required in ChatbotConfig.');
26
+ }
27
+ if (!config.systemIds.continueOtherSectorsModuleId) {
28
+ throw new Error('systemIds.continueOtherSectorsModuleId is required in ChatbotConfig.');
29
+ }
7
30
  return {
8
- budgetPriorityQuestionId: (_b = (_a = config.systemIds) === null || _a === void 0 ? void 0 : _a.budgetPriorityQuestionId) !== null && _b !== void 0 ? _b : "budget_priority",
9
- contactCorrectionQuestionId: (_d = (_c = config.systemIds) === null || _c === void 0 ? void 0 : _c.contactCorrectionQuestionId) !== null && _d !== void 0 ? _d : "contact_correction",
10
- continueOtherSectorsQuestionId: (_f = (_e = config.systemIds) === null || _e === void 0 ? void 0 : _e.continueOtherSectorsQuestionId) !== null && _f !== void 0 ? _f : "continue_other_sectors_question",
11
- finalModuleId: (_h = (_g = config.systemIds) === null || _g === void 0 ? void 0 : _g.finalModuleId) !== null && _h !== void 0 ? _h : "final",
12
- introModuleId: (_k = (_j = config.systemIds) === null || _j === void 0 ? void 0 : _j.introModuleId) !== null && _k !== void 0 ? _k : "intro",
13
- continueOtherSectorsModuleId: (_m = (_l = config.systemIds) === null || _l === void 0 ? void 0 : _l.continueOtherSectorsModuleId) !== null && _m !== void 0 ? _m : "continue_other_sectors",
31
+ budgetPriorityQuestionId: config.systemIds.budgetPriorityQuestionId,
32
+ contactCorrectionQuestionId: config.systemIds.contactCorrectionQuestionId,
33
+ continueOtherSectorsQuestionId: config.systemIds.continueOtherSectorsQuestionId,
34
+ finalModuleId: config.systemIds.finalModuleId,
35
+ introModuleId: config.systemIds.introModuleId,
36
+ continueOtherSectorsModuleId: config.systemIds.continueOtherSectorsModuleId,
14
37
  };
15
38
  }
16
39
  /**
17
- * Obtient les mappings de priorité avec fallback vers les valeurs par défaut
40
+ * Obtient les mappings de priorité depuis la configuration
41
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
18
42
  */
19
43
  export function getPriorityMappings(config) {
20
- return config.priorityMappings || PRIORITY_TO_MODULES;
44
+ if (!config.priorityMappings) {
45
+ throw new Error('priorityMappings is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
46
+ }
47
+ return config.priorityMappings;
21
48
  }
22
49
  /**
23
- * Obtient les mappings de prestataires avec fallback vers les valeurs par défaut
50
+ * Obtient les mappings de prestataires depuis la configuration
51
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
24
52
  */
25
53
  export function getBookedProviderMappings(config) {
26
- return config.bookedProviderMappings || BOOKED_PROVIDER_TO_MODULE;
54
+ if (!config.bookedProviderMappings) {
55
+ throw new Error('bookedProviderMappings is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
56
+ }
57
+ return config.bookedProviderMappings;
27
58
  }
28
59
  /**
29
- * Obtient les priorités de base avec fallback vers les valeurs par défaut
60
+ * Obtient les priorités de base depuis la configuration
61
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
30
62
  */
31
63
  export function getBasePriorities(config) {
32
- return config.basePriorities || BASE_PRIORITIES;
64
+ if (!config.basePriorities) {
65
+ throw new Error('basePriorities is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
66
+ }
67
+ return config.basePriorities;
33
68
  }
34
69
  /**
35
- * Obtient les boosts de priorité avec fallback vers les valeurs par défaut
70
+ * Obtient les boosts de priorité depuis la configuration
71
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
36
72
  */
37
73
  export function getPriorityBoosts(config) {
38
- return config.priorityBoosts || PRIORITY_BOOSTS;
74
+ if (!config.priorityBoosts) {
75
+ throw new Error('priorityBoosts is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
76
+ }
77
+ return config.priorityBoosts;
39
78
  }
40
79
  /**
41
- * Obtient le mapping priorité -> prestataires avec fallback
80
+ * Obtient le mapping priorité -> prestataires depuis la configuration
81
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
42
82
  */
43
83
  export function getPriorityToBookedProviders(config) {
44
- return config.priorityToBookedProviders || PRIORITY_TO_BOOKED_PROVIDERS;
84
+ if (!config.priorityToBookedProviders) {
85
+ throw new Error('priorityToBookedProviders is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
86
+ }
87
+ return config.priorityToBookedProviders;
45
88
  }
46
89
  /**
47
- * Obtient la configuration du calcul de priorité
90
+ * Obtient la configuration du calcul de priorité depuis la configuration
91
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
48
92
  */
49
93
  export function getPriorityCalculation(config) {
50
- var _a, _b, _c, _d;
94
+ if (!config.priorityCalculation) {
95
+ throw new Error('priorityCalculation is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
96
+ }
97
+ if (config.priorityCalculation.base === undefined) {
98
+ throw new Error('priorityCalculation.base is required in ChatbotConfig.');
99
+ }
100
+ if (config.priorityCalculation.step === undefined) {
101
+ throw new Error('priorityCalculation.step is required in ChatbotConfig.');
102
+ }
51
103
  return {
52
- base: (_b = (_a = config.priorityCalculation) === null || _a === void 0 ? void 0 : _a.base) !== null && _b !== void 0 ? _b : -500,
53
- step: (_d = (_c = config.priorityCalculation) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 100,
104
+ base: config.priorityCalculation.base,
105
+ step: config.priorityCalculation.step,
54
106
  };
55
107
  }
56
108
  /**
57
- * Obtient les comportements spéciaux avec fallbacks
109
+ * Obtient les comportements spéciaux depuis la configuration
110
+ * ⚠️ AUCUN FALLBACK - La configuration doit être chargée depuis la base de données
58
111
  */
59
112
  export function getSpecialBehaviors(config) {
60
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
113
+ if (!config.specialBehaviors) {
114
+ throw new Error('specialBehaviors is required in ChatbotConfig. Configuration must be loaded from database via loadChatbotConfig().');
115
+ }
116
+ // ⚠️ Tous les comportements doivent être présents - pas de fallback
117
+ if (config.specialBehaviors.budgetPriority === undefined) {
118
+ throw new Error('specialBehaviors.budgetPriority is required in ChatbotConfig.');
119
+ }
120
+ if (config.specialBehaviors.contactCorrection === undefined) {
121
+ throw new Error('specialBehaviors.contactCorrection is required in ChatbotConfig.');
122
+ }
123
+ if (config.specialBehaviors.continueOtherSectors === undefined) {
124
+ throw new Error('specialBehaviors.continueOtherSectors is required in ChatbotConfig.');
125
+ }
126
+ if (config.specialBehaviors.transitions === undefined) {
127
+ throw new Error('specialBehaviors.transitions is required in ChatbotConfig.');
128
+ }
129
+ // Vérifier que les propriétés requises sont présentes
130
+ if (config.specialBehaviors.budgetPriority.enabled === undefined) {
131
+ throw new Error('specialBehaviors.budgetPriority.enabled is required in ChatbotConfig.');
132
+ }
133
+ if (config.specialBehaviors.budgetPriority.filterOptionsByBookedProviders === undefined) {
134
+ throw new Error('specialBehaviors.budgetPriority.filterOptionsByBookedProviders is required in ChatbotConfig.');
135
+ }
136
+ if (config.specialBehaviors.contactCorrection.enabled === undefined) {
137
+ throw new Error('specialBehaviors.contactCorrection.enabled is required in ChatbotConfig.');
138
+ }
139
+ if (config.specialBehaviors.contactCorrection.detectEmailFrom === undefined) {
140
+ throw new Error('specialBehaviors.contactCorrection.detectEmailFrom is required in ChatbotConfig.');
141
+ }
142
+ if (config.specialBehaviors.continueOtherSectors.enabled === undefined) {
143
+ throw new Error('specialBehaviors.continueOtherSectors.enabled is required in ChatbotConfig.');
144
+ }
145
+ if (config.specialBehaviors.continueOtherSectors.skipToFinalOnNo === undefined) {
146
+ throw new Error('specialBehaviors.continueOtherSectors.skipToFinalOnNo is required in ChatbotConfig.');
147
+ }
148
+ if (config.specialBehaviors.continueOtherSectors.skipModulesWithPriority === undefined) {
149
+ throw new Error('specialBehaviors.continueOtherSectors.skipModulesWithPriority is required in ChatbotConfig.');
150
+ }
151
+ if (config.specialBehaviors.continueOtherSectors.insertBetweenPriorityAndNonPriority === undefined) {
152
+ throw new Error('specialBehaviors.continueOtherSectors.insertBetweenPriorityAndNonPriority is required in ChatbotConfig.');
153
+ }
154
+ if (config.specialBehaviors.transitions.excludeModules === undefined) {
155
+ throw new Error('specialBehaviors.transitions.excludeModules is required in ChatbotConfig.');
156
+ }
61
157
  return {
62
158
  budgetPriority: {
63
- enabled: (_c = (_b = (_a = config.specialBehaviors) === null || _a === void 0 ? void 0 : _a.budgetPriority) === null || _b === void 0 ? void 0 : _b.enabled) !== null && _c !== void 0 ? _c : true,
64
- filterOptionsByBookedProviders: (_f = (_e = (_d = config.specialBehaviors) === null || _d === void 0 ? void 0 : _d.budgetPriority) === null || _e === void 0 ? void 0 : _e.filterOptionsByBookedProviders) !== null && _f !== void 0 ? _f : true,
159
+ enabled: config.specialBehaviors.budgetPriority.enabled,
160
+ filterOptionsByBookedProviders: config.specialBehaviors.budgetPriority.filterOptionsByBookedProviders,
65
161
  },
66
162
  contactCorrection: {
67
- enabled: (_j = (_h = (_g = config.specialBehaviors) === null || _g === void 0 ? void 0 : _g.contactCorrection) === null || _h === void 0 ? void 0 : _h.enabled) !== null && _j !== void 0 ? _j : true,
68
- detectEmailFrom: (_m = (_l = (_k = config.specialBehaviors) === null || _k === void 0 ? void 0 : _k.contactCorrection) === null || _l === void 0 ? void 0 : _l.detectEmailFrom) !== null && _m !== void 0 ? _m : ["Par email", "contact_email"],
163
+ enabled: config.specialBehaviors.contactCorrection.enabled,
164
+ detectEmailFrom: config.specialBehaviors.contactCorrection.detectEmailFrom,
69
165
  },
70
166
  continueOtherSectors: {
71
- enabled: (_q = (_p = (_o = config.specialBehaviors) === null || _o === void 0 ? void 0 : _o.continueOtherSectors) === null || _p === void 0 ? void 0 : _p.enabled) !== null && _q !== void 0 ? _q : true,
72
- skipToFinalOnNo: (_t = (_s = (_r = config.specialBehaviors) === null || _r === void 0 ? void 0 : _r.continueOtherSectors) === null || _s === void 0 ? void 0 : _s.skipToFinalOnNo) !== null && _t !== void 0 ? _t : true,
73
- skipModulesWithPriority: (_w = (_v = (_u = config.specialBehaviors) === null || _u === void 0 ? void 0 : _u.continueOtherSectors) === null || _v === void 0 ? void 0 : _v.skipModulesWithPriority) !== null && _w !== void 0 ? _w : 0,
74
- insertBetweenPriorityAndNonPriority: (_z = (_y = (_x = config.specialBehaviors) === null || _x === void 0 ? void 0 : _x.continueOtherSectors) === null || _y === void 0 ? void 0 : _y.insertBetweenPriorityAndNonPriority) !== null && _z !== void 0 ? _z : true,
167
+ enabled: config.specialBehaviors.continueOtherSectors.enabled,
168
+ skipToFinalOnNo: config.specialBehaviors.continueOtherSectors.skipToFinalOnNo,
169
+ skipModulesWithPriority: config.specialBehaviors.continueOtherSectors.skipModulesWithPriority,
170
+ insertBetweenPriorityAndNonPriority: config.specialBehaviors.continueOtherSectors.insertBetweenPriorityAndNonPriority,
75
171
  },
76
172
  transitions: {
77
- excludeModules: (_2 = (_1 = (_0 = config.specialBehaviors) === null || _0 === void 0 ? void 0 : _0.transitions) === null || _1 === void 0 ? void 0 : _1.excludeModules) !== null && _2 !== void 0 ? _2 : ["intro", "final", "continue_other_sectors"],
173
+ excludeModules: config.specialBehaviors.transitions.excludeModules,
78
174
  },
79
175
  };
80
176
  }
package/dist/engine.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { QuestionModule, ModuleQuestion, QueueState, AnsweredQuestion, UserPriority, I18nFunctions } from "./types";
1
+ import type { QuestionModule, ModuleQuestion, QueueState, AnsweredQuestion, I18nFunctions } from "./types";
2
2
  import type { ChatbotConfig } from './config-loader';
3
3
  import type { EngineType, EngineConfig } from './engine-types';
4
4
  export declare class QuestionEngine {
@@ -77,7 +77,7 @@ export declare class QuestionEngine {
77
77
  private executeQuestionTriggers;
78
78
  private evaluateQuestionTrigger;
79
79
  private executeAction;
80
- applyUserPriority(priority: UserPriority): void;
80
+ applyUserPriority(priority: string): void;
81
81
  private recalculateQueue;
82
82
  getState(): QueueState;
83
83
  getFormData(): Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -3,6 +3,8 @@
3
3
  // Gère la queue, la navigation et les triggers
4
4
  // Version avec configuration dynamique complète
5
5
  // =====================================================
6
+ // ⚠️ SUPPRIMÉ : Import des constantes hardcodées
7
+ // Les configurations sont maintenant chargées depuis la DB via ChatbotConfig
6
8
  import { loadAllAIQuestionsForSector, convertAIQuestionToModuleQuestion, checkConditions } from "./ai-questions-loader";
7
9
  import { getPriorityMappings, getBookedProviderMappings, getPriorityBoosts, getSystemIds, getPriorityToBookedProviders, getPriorityCalculation, getSpecialBehaviors } from './config-loader';
8
10
  // Import conditionnel pour la version serveur (si disponible)
@@ -550,9 +552,12 @@ export class QuestionEngine {
550
552
  // (Uniquement pour le moteur avancé)
551
553
  if (!this.isSimpleEngine() && question.id === systemIds.budgetPriorityQuestionId && behaviors.budgetPriority.enabled) {
552
554
  // Les options du module sont maintenant des clés i18n (ex: "intro_options.budget_priority_venue")
553
- const loadedOptions = question.options && question.options.length > 0
554
- ? question.options
555
- : this.i18n.getQuestionOptions(question.id, 'fr');
555
+ // ⚠️ PAS DE FALLBACK - Les options doivent être chargées depuis la DB
556
+ // Si question.options est vide, c'est une erreur de configuration
557
+ if (!question.options || question.options.length === 0) {
558
+ console.error(`[QuestionEngine] Question ${question.id} has no options - options must be loaded from database`);
559
+ }
560
+ const loadedOptions = question.options || [];
556
561
  // Traduire les options pour le filtrage
557
562
  const translatedOptions = loadedOptions.map(opt => {
558
563
  if (opt.includes('.') && !opt.includes(' ')) {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export { QuestionEngine, getQuestionEngine, resetQuestionEngine } from './engine';
2
2
  export type { I18nFunctions } from './types';
3
3
  export type { QuestionType, ModuleCategory, ModuleQuestion, SubQuestionTemplate, QuestionTrigger, TriggerCondition, TriggerAction, ModuleTrigger, ModuleTriggerCondition, QuestionModule, QueuedModule, QueuedQuestion, QueueState, AnsweredQuestion, UserPriority, PriorityBoost, } from './types';
4
- export { PRIORITY_TO_MODULES, PRIORITY_BOOSTS, BOOKED_PROVIDER_TO_MODULE, PRIORITY_TO_BOOKED_PROVIDERS, BASE_PRIORITIES, } from './types';
5
4
  export type { ChatbotConfig } from './config-loader';
6
5
  export { getPriorityMappings, getBookedProviderMappings, getBasePriorities, getPriorityBoosts, getSystemIds, getPriorityToBookedProviders, getPriorityCalculation, getSpecialBehaviors, } from './config-loader';
7
6
  export type { EngineType, EngineConfig, SimpleEngineConfig, AdvancedEngineConfig, CustomEngineConfig } from './engine-types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,YAAY,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC5H,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE1E,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,YAAY,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAA;AAKhB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC5H,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE1E,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAA"}
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  // QUESTION ENGINE - EXPORTS PRINCIPAUX
3
3
  // =====================================================
4
4
  export { QuestionEngine, getQuestionEngine, resetQuestionEngine } from './engine';
5
- export { PRIORITY_TO_MODULES, PRIORITY_BOOSTS, BOOKED_PROVIDER_TO_MODULE, PRIORITY_TO_BOOKED_PROVIDERS, BASE_PRIORITIES, } from './types';
6
5
  export { getPriorityMappings, getBookedProviderMappings, getBasePriorities, getPriorityBoosts, getSystemIds, getPriorityToBookedProviders, getPriorityCalculation, getSpecialBehaviors, } from './config-loader';
7
6
  export { isValidEngineType, getDefaultEngineConfig } from './engine-types';
8
7
  export { loadAllAIQuestionsForSector, convertAIQuestionToModuleQuestion, findQuestionIndexInModule, checkConditions, } from './ai-questions-loader';
package/dist/types.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export type QuestionType = "text" | "email" | "phone" | "number" | "date" | "select" | "multiselect" | "yesno" | "priority_order" | "info";
2
- export type ModuleCategory = "system" | "intro" | "ceremony" | "venue" | "catering" | "photography" | "videography" | "music" | "flowers" | "decoration" | "dress" | "suit" | "cake" | "rings" | "stationery" | "transport" | "honeymoon" | "final" | "website" | "ecommerce" | "mobile-app" | "seo" | "social-media" | "branding" | "digital-strategy";
2
+ /**
3
+ * ⚠️ SUPPRIMÉ : ModuleCategory type hardcodé
4
+ *
5
+ * Les catégories sont maintenant chargées dynamiquement depuis la base de données
6
+ * via l'enum PostgreSQL `module_category`. Utiliser `string` directement.
7
+ */
8
+ export type ModuleCategory = string;
3
9
  export interface ModuleQuestion {
4
10
  id: string;
5
11
  text: string;
@@ -107,19 +113,29 @@ export interface AnsweredQuestion {
107
113
  answer: string | string[] | number | boolean;
108
114
  answeredAt: Date;
109
115
  }
110
- export type UserPriority = "Le lieu de réception" | "La gastronomie et le repas" | "Les photos et vidéos" | "La musique et l'animation" | "L'ambiance et la décoration" | "La robe de mariée" | "Le costume";
116
+ /**
117
+ * ⚠️ SUPPRIMÉ : UserPriority type hardcodé
118
+ *
119
+ * Ce type contenait des valeurs hardcodées spécifiques à "wedding-planner" :
120
+ * - "Le lieu de réception"
121
+ * - "La gastronomie et le repas"
122
+ * - "La robe de mariée"
123
+ * - etc.
124
+ *
125
+ * Ces valeurs ne fonctionnent que pour "wedding-planner" et ne sont pas scalables
126
+ * pour d'autres types de chatbots (ex: "digital" a des priorités différentes).
127
+ *
128
+ * Les priorités sont maintenant chargées dynamiquement depuis la base de données
129
+ * via `priorityMappings` dans `ChatbotConfig`. Les clés sont des strings arbitraires
130
+ * définies en DB pour chaque type de chatbot.
131
+ *
132
+ * Utiliser `string` directement pour les priorités utilisateur.
133
+ */
134
+ export type UserPriority = string;
111
135
  export interface PriorityBoost {
112
136
  moduleId: string;
113
137
  boost: number;
114
138
  }
115
- export declare const PRIORITY_TO_MODULES: Record<string, string[]>;
116
- export declare const PRIORITY_BOOSTS: Record<UserPriority, PriorityBoost[]>;
117
- export declare const BOOKED_PROVIDER_TO_MODULE: Record<string, {
118
- moduleId: string;
119
- skipQuestion: string;
120
- }>;
121
- export declare const PRIORITY_TO_BOOKED_PROVIDERS: Record<string, string[]>;
122
- export declare const BASE_PRIORITIES: Record<string, number>;
123
139
  /**
124
140
  * Interface pour les fonctions i18n nécessaires au QuestionEngine
125
141
  * Ces fonctions doivent être fournies par le projet consommateur
@@ -134,10 +150,16 @@ export interface I18nFunctions {
134
150
  */
135
151
  t: (key: string, params?: Record<string, any>, lang?: string) => string;
136
152
  /**
137
- * Récupère les options d'une question
153
+ * ⚠️ DÉPRÉCIÉ : getQuestionOptions()
154
+ *
155
+ * Cette fonction ne devrait plus être utilisée. Les options doivent être chargées
156
+ * depuis la base de données et passées directement dans question.options.
157
+ *
158
+ * Conservée uniquement pour compatibilité avec le code existant, mais retourne toujours [].
159
+ *
138
160
  * @param questionId - ID de la question
139
- * @param lang - Langue optionnelle (par défaut: 'fr')
140
- * @returns Tableau d'options (peut être des clés i18n ou des valeurs directes)
161
+ * @param lang - Langue optionnelle (ignorée)
162
+ * @returns Tableau vide (les options doivent être en DB)
141
163
  */
142
164
  getQuestionOptions: (questionId: string, lang?: string) => string[];
143
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,gBAAgB,GAChB,MAAM,CAAA;AAGV,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,UAAU,GACV,aAAa,GACb,aAAa,GACb,OAAO,GACP,SAAS,GACT,YAAY,GACZ,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,WAAW,GACX,WAAW,GACX,OAAO,GAEP,SAAS,GACT,WAAW,GACX,YAAY,GACZ,KAAK,GACL,cAAc,GACd,UAAU,GACV,kBAAkB,CAAA;AAMtB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IAGZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IAEvD,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IAE5B,uBAAuB,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAE/C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAG5C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;IAGhH,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/E,UAAU,EAAE,OAAO,CAAA;IAEnB,kBAAkB,CAAC,EAAE;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;QACvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;CACF;AAGD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;CACpB;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,gBAAgB,CAAA;IAC3B,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,GAAG,qBAAqB,CAAA;IACzG,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,CAAA;IACpE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,MAAM,WAAW,aAAa;IAE5B,SAAS,EAAE,sBAAsB,CAAA;IACjC,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,wBAAwB,CAAA;IAC/F,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CACpC;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,cAAc,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAC3B;AAMD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;IACjE,SAAS,EAAE,cAAc,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;IACtD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAA;IAC7C,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE;QACf,iBAAiB,EAAE,MAAM,CAAA;QACzB,gBAAgB,EAAE,MAAM,CAAA;KACzB,GAAG,IAAI,CAAA;CACT;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAA;IAC5C,UAAU,EAAE,IAAI,CAAA;CACjB;AAMD,MAAM,MAAM,YAAY,GACpB,sBAAsB,GACtB,4BAA4B,GAC5B,sBAAsB,GACtB,2BAA2B,GAC3B,6BAA6B,GAC7B,mBAAmB,GACnB,YAAY,CAAA;AAEhB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAGD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQxD,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAyBjE,CAAA;AASD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAYhG,CAAA;AAKD,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQjE,CAAA;AAMD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2BlD,CAAA;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAEvE;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;CACpE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -2,97 +2,4 @@
2
2
  // QUESTION ENGINE - TYPES & INTERFACES
3
3
  // Architecture modulaire pour le questionnaire Aimi
4
4
  // =====================================================
5
- // Mapping des priorités utilisateur vers les modules
6
- export const PRIORITY_TO_MODULES = {
7
- "Le lieu de réception": ["venue"],
8
- "La gastronomie et le repas": ["catering", "cake"],
9
- "Les photos et vidéos": ["photography", "videography"],
10
- "La musique et l'animation": ["music"],
11
- "L'ambiance et la décoration": ["decoration", "flowers"], // Les fleurs font partie de l'ambiance
12
- "La robe de mariée": ["dress"],
13
- "Le costume": ["suit"],
14
- };
15
- export const PRIORITY_BOOSTS = {
16
- "Le lieu de réception": [
17
- { moduleId: "venue", boost: -100 },
18
- ],
19
- "La gastronomie et le repas": [
20
- { moduleId: "catering", boost: -350 },
21
- { moduleId: "cake", boost: -200 },
22
- ],
23
- "Les photos et vidéos": [
24
- { moduleId: "photography", boost: -350 },
25
- { moduleId: "videography", boost: -300 },
26
- ],
27
- "La musique et l'animation": [
28
- { moduleId: "music", boost: -350 },
29
- ],
30
- "L'ambiance et la décoration": [
31
- { moduleId: "decoration", boost: -400 },
32
- { moduleId: "flowers", boost: -350 }, // Les fleurs font partie de l'ambiance et décoration
33
- ],
34
- "La robe de mariée": [
35
- { moduleId: "dress", boost: -350 },
36
- ],
37
- "Le costume": [
38
- { moduleId: "suit", boost: -350 },
39
- ],
40
- };
41
- // =====================================================
42
- // MAPPING PRESTATAIRES RÉSERVÉS -> MODULES
43
- // =====================================================
44
- // Mapping entre les options de booked_providers et les modules correspondants
45
- // Quand un prestataire est réservé, le module entier est skippé
46
- // skipQuestion = entryQuestionId du module (première question)
47
- export const BOOKED_PROVIDER_TO_MODULE = {
48
- "Lieu de réception": { moduleId: "venue", skipQuestion: "venue_type_preference" },
49
- "Traiteur": { moduleId: "catering", skipQuestion: "meal_style" },
50
- "Photographe": { moduleId: "photography", skipQuestion: "photo_style" },
51
- "Vidéaste": { moduleId: "videography", skipQuestion: "video_style" },
52
- "DJ / Musicien": { moduleId: "music", skipQuestion: "music_preference" },
53
- "Fleuriste": { moduleId: "flowers", skipQuestion: "flower_style" },
54
- "Décorateur": { moduleId: "decoration", skipQuestion: "wedding_theme" },
55
- "Pâtissier (gâteau)": { moduleId: "cake", skipQuestion: "cake_style" },
56
- "Officiant de cérémonie": { moduleId: "ceremony", skipQuestion: "ceremony_type" },
57
- // Note: Coiffeur/Maquilleur n'est pas mappé car c'est indépendant des tenues
58
- // Note: Wedding planner n'est pas dans la liste car Aimi EST le wedding planner
59
- };
60
- // Mapping inverse : option de priorité -> options de booked_providers correspondantes
61
- // Note: "Les tenues" n'a pas de mapping car il n'y a pas de prestataire "Robe" ou "Costume"
62
- // dans la liste des prestataires réservables (c'est une recherche personnelle)
63
- export const PRIORITY_TO_BOOKED_PROVIDERS = {
64
- "Le lieu de réception": ["Lieu de réception"],
65
- "La gastronomie et le repas": ["Traiteur", "Pâtissier (gâteau)"],
66
- "Les photos et vidéos": ["Photographe", "Vidéaste"],
67
- "La musique et l'animation": ["DJ / Musicien"],
68
- "L'ambiance et la décoration": ["Décorateur", "Fleuriste"], // Inclut les fleurs
69
- "La robe de mariée": [], // Pas de prestataire associé
70
- "Le costume": [], // Pas de prestataire associé
71
- };
72
- // =====================================================
73
- // CONSTANTES DE PRIORITÉ DE BASE
74
- // =====================================================
75
- export const BASE_PRIORITIES = {
76
- // Module fixe (toujours au début)
77
- intro: 0, // Date, invités, budget, coordonnées, priorité
78
- // Modules réorganisables selon priorité utilisateur (200-599)
79
- venue: 200,
80
- catering: 250,
81
- photography: 300,
82
- videography: 350,
83
- music: 400,
84
- flowers: 450,
85
- decoration: 500,
86
- dress: 550, // Secteur : robe de mariée
87
- suit: 560, // Secteur : costume
88
- // Cérémonie - traité comme les autres prestataires
89
- ceremony: 575,
90
- // Modules secondaires (600+)
91
- cake: 600,
92
- rings: 650,
93
- stationery: 700,
94
- transport: 750,
95
- honeymoon: 800,
96
- // Module final (toujours à la fin)
97
- final: 1000,
98
- };
5
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fidusia/question-engine-dynamic",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Moteur de questions avec configuration dynamique complète",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",