@d19n/youfibre-odin-sdk 2.0.321 → 2.0.322

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.
Files changed (55) hide show
  1. package/README.md +7 -2
  2. package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.d.ts +14 -14
  3. package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.js +22 -22
  4. package/dist/actions-v2/DefaultServiceWorkOrderEditFormDto.d.ts +8 -1
  5. package/dist/actions-v2/UpdateCustomerDeviceBatteryDto.d.ts +3 -1
  6. package/dist/actions-v2/UpdateCustomerDeviceBatteryDto.js +3 -1
  7. package/dist/api-sdk-v2/CaseApi.d.ts +4 -0
  8. package/dist/api-sdk-v2/CaseApi.js +12 -0
  9. package/dist/api-sdk-v2/CoachingSessionApi.d.ts +50 -0
  10. package/dist/api-sdk-v2/CoachingSessionApi.js +161 -0
  11. package/dist/api-sdk-v2/QaEvaluationAnswerApi.d.ts +48 -0
  12. package/dist/api-sdk-v2/QaEvaluationAnswerApi.js +155 -0
  13. package/dist/api-sdk-v2/QaEvaluationApi.d.ts +54 -0
  14. package/dist/api-sdk-v2/QaEvaluationApi.js +173 -0
  15. package/dist/api-sdk-v2/QaScorecardQuestionApi.d.ts +48 -0
  16. package/dist/api-sdk-v2/QaScorecardQuestionApi.js +155 -0
  17. package/dist/api-sdk-v2/QaScorecardTemplateApi.d.ts +50 -0
  18. package/dist/api-sdk-v2/QaScorecardTemplateApi.js +161 -0
  19. package/dist/db-sdk-v2/CaseDb.d.ts +4 -0
  20. package/dist/db-sdk-v2/CaseDb.js +12 -0
  21. package/dist/db-sdk-v2/CoachingSessionDb.d.ts +122 -0
  22. package/dist/db-sdk-v2/CoachingSessionDb.js +210 -0
  23. package/dist/db-sdk-v2/QaEvaluationAnswerDb.d.ts +120 -0
  24. package/dist/db-sdk-v2/QaEvaluationAnswerDb.js +204 -0
  25. package/dist/db-sdk-v2/QaEvaluationDb.d.ts +126 -0
  26. package/dist/db-sdk-v2/QaEvaluationDb.js +222 -0
  27. package/dist/db-sdk-v2/QaScorecardQuestionDb.d.ts +120 -0
  28. package/dist/db-sdk-v2/QaScorecardQuestionDb.js +204 -0
  29. package/dist/db-sdk-v2/QaScorecardTemplateDb.d.ts +122 -0
  30. package/dist/db-sdk-v2/QaScorecardTemplateDb.js +210 -0
  31. package/dist/entities-v2/Case.d.ts +14 -0
  32. package/dist/entities-v2/Case.js +9 -1
  33. package/dist/entities-v2/CoachingSession.d.ts +247 -0
  34. package/dist/entities-v2/CoachingSession.js +145 -0
  35. package/dist/entities-v2/CustomerDeviceRouter.d.ts +258 -8
  36. package/dist/entities-v2/CustomerDeviceRouter.js +17 -9
  37. package/dist/entities-v2/QaEvaluation.d.ts +361 -0
  38. package/dist/entities-v2/QaEvaluation.js +217 -0
  39. package/dist/entities-v2/QaEvaluationAnswer.d.ts +127 -0
  40. package/dist/entities-v2/QaEvaluationAnswer.js +92 -0
  41. package/dist/entities-v2/QaScorecardQuestion.d.ts +155 -0
  42. package/dist/entities-v2/QaScorecardQuestion.js +96 -0
  43. package/dist/entities-v2/QaScorecardTemplate.d.ts +152 -0
  44. package/dist/entities-v2/QaScorecardTemplate.js +114 -0
  45. package/dist/entities-v2/WorkOrder.d.ts +210 -1
  46. package/dist/entities-v2/WorkOrder.js +22 -4
  47. package/dist/entities-v2/YfFieldVisitOutcomeForm.d.ts +4 -3
  48. package/dist/entities-v2/YfFieldVisitOutcomeForm.js +2 -1
  49. package/dist/records-v2/CustomerDeviceRouterRecord.d.ts +38 -2
  50. package/dist/records-v2/CustomerDeviceRouterRecord.js +37 -0
  51. package/dist/records-v2/WorkOrderRecord.d.ts +4 -4
  52. package/dist/records-v2/WorkOrderRecord.js +4 -4
  53. package/dist/records-v2/YfFieldVisitOutcomeFormRecord.d.ts +5 -4
  54. package/dist/records-v2/YfFieldVisitOutcomeFormRecord.js +5 -5
  55. package/package.json +1 -1
@@ -0,0 +1,127 @@
1
+ /**
2
+ * QaEvaluationAnswer Entity Definition
3
+ *
4
+ * One answer on a QA evaluation — the question it answers, the verdict, and any per-question feedback. Rows, so that per-question fail rates and coaching themes can be queried rather than parsed.
5
+ *
6
+ * @module SupportModule
7
+ * @entity QaEvaluationAnswer
8
+ * @schemaId 64f072c1-5d8e-494d-b4ac-634220ba0697
9
+ *
10
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
11
+ * Generated from Odin schema definition
12
+ */
13
+ import { OdinRecord, OdinLink, LinkedOdinRecord } from '@d19n/odin-types/dist/core';
14
+ import { QaEvaluationProperties } from './QaEvaluation';
15
+ /**
16
+ * Available types for QaEvaluationAnswer records
17
+ */
18
+ export declare enum QaEvaluationAnswerEntityTypes {
19
+ /** This is the default record type */
20
+ DEFAULT = "DEFAULT"
21
+ }
22
+ /**
23
+ * Valid values for QaEvaluationAnswer.Answer
24
+ *
25
+ * The verdict. N/A means the question did not apply and leaves both sides of the score fraction, rather than counting as a fail.
26
+ *
27
+ * @remarks Available options:
28
+ * - `NA` - N/A
29
+ * - `NO` - No
30
+ * - `PARTIAL` - Partial
31
+ * - `YES` - Yes
32
+ */
33
+ export declare enum QaEvaluationAnswerAnswer {
34
+ N_A = "NA",
35
+ NO = "NO",
36
+ PARTIAL = "PARTIAL",
37
+ YES = "YES"
38
+ }
39
+ /**
40
+ * Property keys for QaEvaluationAnswer
41
+ * Use these constants instead of string literals for type safety
42
+ */
43
+ export declare enum QaEvaluationAnswerPropertyKeys {
44
+ /** The verdict. N/A means the question did not apply and leaves both sides of the score fraction, rather than counting as a fail. */
45
+ Answer = "Answer",
46
+ /** The evaluation this answer belongs to. */
47
+ EvaluationId = "EvaluationId",
48
+ /** Which question was answered, e.g. EMAIL.BEHAV.12. Searchable, so a per-question fail rate is a query rather than a parse of every evaluation. */
49
+ QuestionKey = "QuestionKey",
50
+ /** The evaluator’s note on this question, or the AI scorer’s rationale. */
51
+ Feedback = "Feedback",
52
+ /** Display order, matching the scorecard. */
53
+ Position = "Position"
54
+ }
55
+ /**
56
+ * Properties for QaEvaluationAnswer records
57
+ *
58
+ * @see SupportModule:QaEvaluationAnswer
59
+ */
60
+ export interface QaEvaluationAnswerProperties {
61
+ /** The verdict. N/A means the question did not apply and leaves both sides of the score fraction, rather than counting as a fail.
62
+ *
63
+ * @type {ENUM}
64
+ * @default
65
+ * @enum {QaEvaluationAnswerAnswer}
66
+ */
67
+ Answer: QaEvaluationAnswerAnswer;
68
+ /** The evaluation this answer belongs to.
69
+ *
70
+ * @type {LOOKUP}
71
+ * @default
72
+ */
73
+ EvaluationId: string;
74
+ /** Which question was answered, e.g. EMAIL.BEHAV.12. Searchable, so a per-question fail rate is a query rather than a parse of every evaluation.
75
+ *
76
+ * @type {TEXT}
77
+ * @default
78
+ */
79
+ QuestionKey: string;
80
+ /** The evaluator’s note on this question, or the AI scorer’s rationale.
81
+ *
82
+ * @type {TEXT_LONG}
83
+ * @default
84
+ */
85
+ Feedback: string;
86
+ /** Display order, matching the scorecard.
87
+ *
88
+ * @type {NUMBER}
89
+ * @default
90
+ */
91
+ Position: number;
92
+ }
93
+ /**
94
+ * QaEvaluationAnswer entity from SupportModule
95
+ *
96
+ * One answer on a QA evaluation — the question it answers, the verdict, and any per-question feedback. Rows, so that per-question fail rates and coaching themes can be queried rather than parsed.
97
+ *
98
+ * @module SupportModule
99
+ * @entity QaEvaluationAnswer
100
+ * @schemaId 64f072c1-5d8e-494d-b4ac-634220ba0697
101
+ * @recordPrefix QAA
102
+ * @capabilities searchable, updateable, undeletable, triggerable
103
+ */
104
+ export declare class QaEvaluationAnswer extends OdinRecord<QaEvaluationAnswerProperties> {
105
+ entity: 'SupportModule:QaEvaluationAnswer';
106
+ type: QaEvaluationAnswerEntityTypes;
107
+ schemaId: '64f072c1-5d8e-494d-b4ac-634220ba0697';
108
+ properties: QaEvaluationAnswerProperties;
109
+ /** Linked QaEvaluation records (QaEvaluation__QaEvaluationAnswer) */
110
+ QaEvaluation: OdinLink<LinkedOdinRecord<QaEvaluationProperties>>;
111
+ }
112
+ /**
113
+ * RabbitMQ routing keys for QaEvaluationAnswer events
114
+ */
115
+ export declare const ROUTING_KEY_QA_EVALUATION_ANSWER_CREATED = "SupportModule.QaEvaluationAnswer.SubDbRecordCreated";
116
+ export declare const ROUTING_KEY_QA_EVALUATION_ANSWER_UPDATED = "SupportModule.QaEvaluationAnswer.SubDbRecordUpdated";
117
+ export declare const ROUTING_KEY_QA_EVALUATION_ANSWER_DELETED = "SupportModule.QaEvaluationAnswer.SubDbRecordDeleted";
118
+ /**
119
+ * Type-specific routing keys for QaEvaluationAnswer events
120
+ * Subscribe to these for events on specific entity types only
121
+ */
122
+ /** This is the default record type created */
123
+ export declare const ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_CREATED = "SupportModule.QaEvaluationAnswer.DEFAULT.SubDbRecordCreated";
124
+ /** This is the default record type updated */
125
+ export declare const ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_UPDATED = "SupportModule.QaEvaluationAnswer.DEFAULT.SubDbRecordUpdated";
126
+ /** This is the default record type deleted */
127
+ export declare const ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_DELETED = "SupportModule.QaEvaluationAnswer.DEFAULT.SubDbRecordDeleted";
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * QaEvaluationAnswer Entity Definition
4
+ *
5
+ * One answer on a QA evaluation — the question it answers, the verdict, and any per-question feedback. Rows, so that per-question fail rates and coaching themes can be queried rather than parsed.
6
+ *
7
+ * @module SupportModule
8
+ * @entity QaEvaluationAnswer
9
+ * @schemaId 64f072c1-5d8e-494d-b4ac-634220ba0697
10
+ *
11
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
12
+ * Generated from Odin schema definition
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_DELETED = exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_UPDATED = exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_CREATED = exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DELETED = exports.ROUTING_KEY_QA_EVALUATION_ANSWER_UPDATED = exports.ROUTING_KEY_QA_EVALUATION_ANSWER_CREATED = exports.QaEvaluationAnswer = exports.QaEvaluationAnswerPropertyKeys = exports.QaEvaluationAnswerAnswer = exports.QaEvaluationAnswerEntityTypes = void 0;
16
+ const core_1 = require("@d19n/odin-types/dist/core");
17
+ /**
18
+ * Available types for QaEvaluationAnswer records
19
+ */
20
+ var QaEvaluationAnswerEntityTypes;
21
+ (function (QaEvaluationAnswerEntityTypes) {
22
+ /** This is the default record type */
23
+ QaEvaluationAnswerEntityTypes["DEFAULT"] = "DEFAULT";
24
+ })(QaEvaluationAnswerEntityTypes = exports.QaEvaluationAnswerEntityTypes || (exports.QaEvaluationAnswerEntityTypes = {}));
25
+ /**
26
+ * Valid values for QaEvaluationAnswer.Answer
27
+ *
28
+ * The verdict. N/A means the question did not apply and leaves both sides of the score fraction, rather than counting as a fail.
29
+ *
30
+ * @remarks Available options:
31
+ * - `NA` - N/A
32
+ * - `NO` - No
33
+ * - `PARTIAL` - Partial
34
+ * - `YES` - Yes
35
+ */
36
+ var QaEvaluationAnswerAnswer;
37
+ (function (QaEvaluationAnswerAnswer) {
38
+ QaEvaluationAnswerAnswer["N_A"] = "NA";
39
+ QaEvaluationAnswerAnswer["NO"] = "NO";
40
+ QaEvaluationAnswerAnswer["PARTIAL"] = "PARTIAL";
41
+ QaEvaluationAnswerAnswer["YES"] = "YES";
42
+ })(QaEvaluationAnswerAnswer = exports.QaEvaluationAnswerAnswer || (exports.QaEvaluationAnswerAnswer = {}));
43
+ /**
44
+ * Property keys for QaEvaluationAnswer
45
+ * Use these constants instead of string literals for type safety
46
+ */
47
+ var QaEvaluationAnswerPropertyKeys;
48
+ (function (QaEvaluationAnswerPropertyKeys) {
49
+ /** The verdict. N/A means the question did not apply and leaves both sides of the score fraction, rather than counting as a fail. */
50
+ QaEvaluationAnswerPropertyKeys["Answer"] = "Answer";
51
+ /** The evaluation this answer belongs to. */
52
+ QaEvaluationAnswerPropertyKeys["EvaluationId"] = "EvaluationId";
53
+ /** Which question was answered, e.g. EMAIL.BEHAV.12. Searchable, so a per-question fail rate is a query rather than a parse of every evaluation. */
54
+ QaEvaluationAnswerPropertyKeys["QuestionKey"] = "QuestionKey";
55
+ /** The evaluator’s note on this question, or the AI scorer’s rationale. */
56
+ QaEvaluationAnswerPropertyKeys["Feedback"] = "Feedback";
57
+ /** Display order, matching the scorecard. */
58
+ QaEvaluationAnswerPropertyKeys["Position"] = "Position";
59
+ })(QaEvaluationAnswerPropertyKeys = exports.QaEvaluationAnswerPropertyKeys || (exports.QaEvaluationAnswerPropertyKeys = {}));
60
+ /**
61
+ * QaEvaluationAnswer entity from SupportModule
62
+ *
63
+ * One answer on a QA evaluation — the question it answers, the verdict, and any per-question feedback. Rows, so that per-question fail rates and coaching themes can be queried rather than parsed.
64
+ *
65
+ * @module SupportModule
66
+ * @entity QaEvaluationAnswer
67
+ * @schemaId 64f072c1-5d8e-494d-b4ac-634220ba0697
68
+ * @recordPrefix QAA
69
+ * @capabilities searchable, updateable, undeletable, triggerable
70
+ */
71
+ class QaEvaluationAnswer extends core_1.OdinRecord {
72
+ }
73
+ exports.QaEvaluationAnswer = QaEvaluationAnswer;
74
+ // ============================================
75
+ // RABBITMQ EVENT ROUTING KEYS
76
+ // ============================================
77
+ /**
78
+ * RabbitMQ routing keys for QaEvaluationAnswer events
79
+ */
80
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_CREATED = 'SupportModule.QaEvaluationAnswer.SubDbRecordCreated';
81
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_UPDATED = 'SupportModule.QaEvaluationAnswer.SubDbRecordUpdated';
82
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DELETED = 'SupportModule.QaEvaluationAnswer.SubDbRecordDeleted';
83
+ /**
84
+ * Type-specific routing keys for QaEvaluationAnswer events
85
+ * Subscribe to these for events on specific entity types only
86
+ */
87
+ /** This is the default record type created */
88
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_CREATED = 'SupportModule.QaEvaluationAnswer.DEFAULT.SubDbRecordCreated';
89
+ /** This is the default record type updated */
90
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_UPDATED = 'SupportModule.QaEvaluationAnswer.DEFAULT.SubDbRecordUpdated';
91
+ /** This is the default record type deleted */
92
+ exports.ROUTING_KEY_QA_EVALUATION_ANSWER_DEFAULT_DELETED = 'SupportModule.QaEvaluationAnswer.DEFAULT.SubDbRecordDeleted';
@@ -0,0 +1,155 @@
1
+ /**
2
+ * QaScorecardQuestion Entity Definition
3
+ *
4
+ * One question on a QA scorecard: its section, wording, weight and answer scale. A row rather than part of a JSON blob, because a property value has a content-dependent size ceiling the call scorecards exceed.
5
+ *
6
+ * @module SupportModule
7
+ * @entity QaScorecardQuestion
8
+ * @schemaId c8a58996-9640-4663-a075-e9a8321ceb6e
9
+ *
10
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
11
+ * Generated from Odin schema definition
12
+ */
13
+ import { OdinRecord, OdinLink, LinkedOdinRecord } from '@d19n/odin-types/dist/core';
14
+ import { QaScorecardTemplateProperties } from './QaScorecardTemplate';
15
+ /**
16
+ * Available types for QaScorecardQuestion records
17
+ */
18
+ export declare enum QaScorecardQuestionEntityTypes {
19
+ /** This is the default record type */
20
+ DEFAULT = "DEFAULT"
21
+ }
22
+ /**
23
+ * Valid values for QaScorecardQuestion.Scale
24
+ *
25
+ * Which answers this question accepts. Only the call scorecards award partial credit.
26
+ *
27
+ * @remarks Available options:
28
+ * - `YES_NO_NA` - Yes / No / N/A
29
+ * - `YES_PARTIAL_NO_NA` - Yes / Partial / No / N/A
30
+ */
31
+ export declare enum QaScorecardQuestionScale {
32
+ YES_NO_N_A = "YES_NO_NA",
33
+ YES_PARTIAL_NO_N_A = "YES_PARTIAL_NO_NA"
34
+ }
35
+ /**
36
+ * Property keys for QaScorecardQuestion
37
+ * Use these constants instead of string literals for type safety
38
+ */
39
+ export declare enum QaScorecardQuestionPropertyKeys {
40
+ /** The scorecard version this question belongs to. */
41
+ TemplateId = "TemplateId",
42
+ /** Section heading as it appears on the scorecard, e.g. Behavioural. */
43
+ Section = "Section",
44
+ /** Stable id, e.g. EMAIL.BEHAV.12. The addressing scheme for stored answers, per-question fail rates and coaching themes, so it must never be renumbered once evaluations reference it. */
45
+ QuestionKey = "QuestionKey",
46
+ /** The question as the evaluator reads it. Verbatim from the approved scorecard. */
47
+ Criteria = "Criteria",
48
+ /** The guidance that defines what a pass means. Verbatim, including the source sheet’s own typos. */
49
+ Definition = "Definition",
50
+ /** Weight in percentage points. Across one scorecard these sum to 100. */
51
+ WeightPct = "WeightPct",
52
+ /** Credit for PARTIAL as a fraction of the weight. The sheet writes it out of five, so "Partially done 2.50" is 0.5. Empty unless the scale allows PARTIAL. */
53
+ PartialValue = "PartialValue",
54
+ /** Which answers this question accepts. Only the call scorecards award partial credit. */
55
+ Scale = "Scale",
56
+ /** Display order on the scorecard, matching the source sheet. */
57
+ Position = "Position"
58
+ }
59
+ /**
60
+ * Properties for QaScorecardQuestion records
61
+ *
62
+ * @see SupportModule:QaScorecardQuestion
63
+ */
64
+ export interface QaScorecardQuestionProperties {
65
+ /** The scorecard version this question belongs to.
66
+ *
67
+ * @type {LOOKUP}
68
+ * @default
69
+ */
70
+ TemplateId: string;
71
+ /** Section heading as it appears on the scorecard, e.g. Behavioural.
72
+ *
73
+ * @type {TEXT}
74
+ * @default
75
+ */
76
+ Section: string;
77
+ /** Stable id, e.g. EMAIL.BEHAV.12. The addressing scheme for stored answers, per-question fail rates and coaching themes, so it must never be renumbered once evaluations reference it.
78
+ *
79
+ * @type {TEXT}
80
+ * @default
81
+ */
82
+ QuestionKey: string;
83
+ /** The question as the evaluator reads it. Verbatim from the approved scorecard.
84
+ *
85
+ * @type {TEXT_LONG}
86
+ * @default
87
+ */
88
+ Criteria: string;
89
+ /** The guidance that defines what a pass means. Verbatim, including the source sheet’s own typos.
90
+ *
91
+ * @type {TEXT_LONG}
92
+ * @default
93
+ */
94
+ Definition: string;
95
+ /** Weight in percentage points. Across one scorecard these sum to 100.
96
+ *
97
+ * @type {NUMBER}
98
+ * @default
99
+ */
100
+ WeightPct: number;
101
+ /** Credit for PARTIAL as a fraction of the weight. The sheet writes it out of five, so "Partially done 2.50" is 0.5. Empty unless the scale allows PARTIAL.
102
+ *
103
+ * @type {NUMBER}
104
+ * @default
105
+ */
106
+ PartialValue: number;
107
+ /** Which answers this question accepts. Only the call scorecards award partial credit.
108
+ *
109
+ * @type {ENUM}
110
+ * @default
111
+ * @enum {QaScorecardQuestionScale}
112
+ */
113
+ Scale: QaScorecardQuestionScale;
114
+ /** Display order on the scorecard, matching the source sheet.
115
+ *
116
+ * @type {NUMBER}
117
+ * @default
118
+ */
119
+ Position: number;
120
+ }
121
+ /**
122
+ * QaScorecardQuestion entity from SupportModule
123
+ *
124
+ * One question on a QA scorecard: its section, wording, weight and answer scale. A row rather than part of a JSON blob, because a property value has a content-dependent size ceiling the call scorecards exceed.
125
+ *
126
+ * @module SupportModule
127
+ * @entity QaScorecardQuestion
128
+ * @schemaId c8a58996-9640-4663-a075-e9a8321ceb6e
129
+ * @recordPrefix QAQ
130
+ * @capabilities searchable, updateable, undeletable, triggerable
131
+ */
132
+ export declare class QaScorecardQuestion extends OdinRecord<QaScorecardQuestionProperties> {
133
+ entity: 'SupportModule:QaScorecardQuestion';
134
+ type: QaScorecardQuestionEntityTypes;
135
+ schemaId: 'c8a58996-9640-4663-a075-e9a8321ceb6e';
136
+ properties: QaScorecardQuestionProperties;
137
+ /** Linked QaScorecardTemplate records (QaScorecardTemplate__QaScorecardQuestion) */
138
+ QaScorecardTemplate: OdinLink<LinkedOdinRecord<QaScorecardTemplateProperties>>;
139
+ }
140
+ /**
141
+ * RabbitMQ routing keys for QaScorecardQuestion events
142
+ */
143
+ export declare const ROUTING_KEY_QA_SCORECARD_QUESTION_CREATED = "SupportModule.QaScorecardQuestion.SubDbRecordCreated";
144
+ export declare const ROUTING_KEY_QA_SCORECARD_QUESTION_UPDATED = "SupportModule.QaScorecardQuestion.SubDbRecordUpdated";
145
+ export declare const ROUTING_KEY_QA_SCORECARD_QUESTION_DELETED = "SupportModule.QaScorecardQuestion.SubDbRecordDeleted";
146
+ /**
147
+ * Type-specific routing keys for QaScorecardQuestion events
148
+ * Subscribe to these for events on specific entity types only
149
+ */
150
+ /** This is the default record type created */
151
+ export declare const ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_CREATED = "SupportModule.QaScorecardQuestion.DEFAULT.SubDbRecordCreated";
152
+ /** This is the default record type updated */
153
+ export declare const ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_UPDATED = "SupportModule.QaScorecardQuestion.DEFAULT.SubDbRecordUpdated";
154
+ /** This is the default record type deleted */
155
+ export declare const ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_DELETED = "SupportModule.QaScorecardQuestion.DEFAULT.SubDbRecordDeleted";
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * QaScorecardQuestion Entity Definition
4
+ *
5
+ * One question on a QA scorecard: its section, wording, weight and answer scale. A row rather than part of a JSON blob, because a property value has a content-dependent size ceiling the call scorecards exceed.
6
+ *
7
+ * @module SupportModule
8
+ * @entity QaScorecardQuestion
9
+ * @schemaId c8a58996-9640-4663-a075-e9a8321ceb6e
10
+ *
11
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
12
+ * Generated from Odin schema definition
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_DELETED = exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_UPDATED = exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_CREATED = exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DELETED = exports.ROUTING_KEY_QA_SCORECARD_QUESTION_UPDATED = exports.ROUTING_KEY_QA_SCORECARD_QUESTION_CREATED = exports.QaScorecardQuestion = exports.QaScorecardQuestionPropertyKeys = exports.QaScorecardQuestionScale = exports.QaScorecardQuestionEntityTypes = void 0;
16
+ const core_1 = require("@d19n/odin-types/dist/core");
17
+ /**
18
+ * Available types for QaScorecardQuestion records
19
+ */
20
+ var QaScorecardQuestionEntityTypes;
21
+ (function (QaScorecardQuestionEntityTypes) {
22
+ /** This is the default record type */
23
+ QaScorecardQuestionEntityTypes["DEFAULT"] = "DEFAULT";
24
+ })(QaScorecardQuestionEntityTypes = exports.QaScorecardQuestionEntityTypes || (exports.QaScorecardQuestionEntityTypes = {}));
25
+ /**
26
+ * Valid values for QaScorecardQuestion.Scale
27
+ *
28
+ * Which answers this question accepts. Only the call scorecards award partial credit.
29
+ *
30
+ * @remarks Available options:
31
+ * - `YES_NO_NA` - Yes / No / N/A
32
+ * - `YES_PARTIAL_NO_NA` - Yes / Partial / No / N/A
33
+ */
34
+ var QaScorecardQuestionScale;
35
+ (function (QaScorecardQuestionScale) {
36
+ QaScorecardQuestionScale["YES_NO_N_A"] = "YES_NO_NA";
37
+ QaScorecardQuestionScale["YES_PARTIAL_NO_N_A"] = "YES_PARTIAL_NO_NA";
38
+ })(QaScorecardQuestionScale = exports.QaScorecardQuestionScale || (exports.QaScorecardQuestionScale = {}));
39
+ /**
40
+ * Property keys for QaScorecardQuestion
41
+ * Use these constants instead of string literals for type safety
42
+ */
43
+ var QaScorecardQuestionPropertyKeys;
44
+ (function (QaScorecardQuestionPropertyKeys) {
45
+ /** The scorecard version this question belongs to. */
46
+ QaScorecardQuestionPropertyKeys["TemplateId"] = "TemplateId";
47
+ /** Section heading as it appears on the scorecard, e.g. Behavioural. */
48
+ QaScorecardQuestionPropertyKeys["Section"] = "Section";
49
+ /** Stable id, e.g. EMAIL.BEHAV.12. The addressing scheme for stored answers, per-question fail rates and coaching themes, so it must never be renumbered once evaluations reference it. */
50
+ QaScorecardQuestionPropertyKeys["QuestionKey"] = "QuestionKey";
51
+ /** The question as the evaluator reads it. Verbatim from the approved scorecard. */
52
+ QaScorecardQuestionPropertyKeys["Criteria"] = "Criteria";
53
+ /** The guidance that defines what a pass means. Verbatim, including the source sheet’s own typos. */
54
+ QaScorecardQuestionPropertyKeys["Definition"] = "Definition";
55
+ /** Weight in percentage points. Across one scorecard these sum to 100. */
56
+ QaScorecardQuestionPropertyKeys["WeightPct"] = "WeightPct";
57
+ /** Credit for PARTIAL as a fraction of the weight. The sheet writes it out of five, so "Partially done 2.50" is 0.5. Empty unless the scale allows PARTIAL. */
58
+ QaScorecardQuestionPropertyKeys["PartialValue"] = "PartialValue";
59
+ /** Which answers this question accepts. Only the call scorecards award partial credit. */
60
+ QaScorecardQuestionPropertyKeys["Scale"] = "Scale";
61
+ /** Display order on the scorecard, matching the source sheet. */
62
+ QaScorecardQuestionPropertyKeys["Position"] = "Position";
63
+ })(QaScorecardQuestionPropertyKeys = exports.QaScorecardQuestionPropertyKeys || (exports.QaScorecardQuestionPropertyKeys = {}));
64
+ /**
65
+ * QaScorecardQuestion entity from SupportModule
66
+ *
67
+ * One question on a QA scorecard: its section, wording, weight and answer scale. A row rather than part of a JSON blob, because a property value has a content-dependent size ceiling the call scorecards exceed.
68
+ *
69
+ * @module SupportModule
70
+ * @entity QaScorecardQuestion
71
+ * @schemaId c8a58996-9640-4663-a075-e9a8321ceb6e
72
+ * @recordPrefix QAQ
73
+ * @capabilities searchable, updateable, undeletable, triggerable
74
+ */
75
+ class QaScorecardQuestion extends core_1.OdinRecord {
76
+ }
77
+ exports.QaScorecardQuestion = QaScorecardQuestion;
78
+ // ============================================
79
+ // RABBITMQ EVENT ROUTING KEYS
80
+ // ============================================
81
+ /**
82
+ * RabbitMQ routing keys for QaScorecardQuestion events
83
+ */
84
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_CREATED = 'SupportModule.QaScorecardQuestion.SubDbRecordCreated';
85
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_UPDATED = 'SupportModule.QaScorecardQuestion.SubDbRecordUpdated';
86
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DELETED = 'SupportModule.QaScorecardQuestion.SubDbRecordDeleted';
87
+ /**
88
+ * Type-specific routing keys for QaScorecardQuestion events
89
+ * Subscribe to these for events on specific entity types only
90
+ */
91
+ /** This is the default record type created */
92
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_CREATED = 'SupportModule.QaScorecardQuestion.DEFAULT.SubDbRecordCreated';
93
+ /** This is the default record type updated */
94
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_UPDATED = 'SupportModule.QaScorecardQuestion.DEFAULT.SubDbRecordUpdated';
95
+ /** This is the default record type deleted */
96
+ exports.ROUTING_KEY_QA_SCORECARD_QUESTION_DEFAULT_DELETED = 'SupportModule.QaScorecardQuestion.DEFAULT.SubDbRecordDeleted';
@@ -0,0 +1,152 @@
1
+ /**
2
+ * QaScorecardTemplate Entity Definition
3
+ *
4
+ * A quality-assurance scorecard as approved by QA. One record per channel per version, holding the questions, their weights and the auto-fail rules. Data not code, so weights change without a deploy; evaluations snapshot the version they scored.
5
+ *
6
+ * @module SupportModule
7
+ * @entity QaScorecardTemplate
8
+ * @schemaId fca4942e-0f11-474a-9e5e-8b4659b54073
9
+ *
10
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
11
+ * Generated from Odin schema definition
12
+ */
13
+ import { OdinRecord, OdinLink, LinkedOdinRecord } from '@d19n/odin-types/dist/core';
14
+ import { QaEvaluationProperties } from './QaEvaluation';
15
+ import { QaScorecardQuestionProperties } from './QaScorecardQuestion';
16
+ /**
17
+ * Available types for QaScorecardTemplate records
18
+ */
19
+ export declare enum QaScorecardTemplateEntityTypes {
20
+ /** This is the default record type */
21
+ DEFAULT = "DEFAULT"
22
+ }
23
+ /**
24
+ * Valid values for QaScorecardTemplate.Channel
25
+ *
26
+ * Which scorecard this is. Derived from the Case channel, and for CALL from the call direction.
27
+ *
28
+ * @remarks Available options:
29
+ * - `CALL_INBOUND` - Call — inbound
30
+ * - `CALL_OUTBOUND` - Call — outbound
31
+ * - `CHAT` - Chat
32
+ * - `EMAIL` - Email
33
+ */
34
+ export declare enum QaScorecardTemplateChannel {
35
+ CALL_INBOUND = "CALL_INBOUND",
36
+ CALL_OUTBOUND = "CALL_OUTBOUND",
37
+ CHAT = "CHAT",
38
+ EMAIL = "EMAIL"
39
+ }
40
+ /**
41
+ * Valid values for QaScorecardTemplate.IsActive
42
+ *
43
+ * The version evaluators are given for this channel. Exactly one per channel should be active; the API enforces that, the schema cannot.
44
+ *
45
+ * @remarks Available options:
46
+ * - `NO` - No
47
+ * - `YES` - Yes
48
+ */
49
+ export declare enum QaScorecardTemplateIsActive {
50
+ NO = "NO",
51
+ YES = "YES"
52
+ }
53
+ /**
54
+ * Property keys for QaScorecardTemplate
55
+ * Use these constants instead of string literals for type safety
56
+ */
57
+ export declare enum QaScorecardTemplatePropertyKeys {
58
+ /** Which scorecard this is. Derived from the Case channel, and for CALL from the call direction. */
59
+ Channel = "Channel",
60
+ /** Bumped whenever a question or a weight changes. Evaluations pin the version they scored against, so an old score can always be reproduced. */
61
+ Version = "Version",
62
+ /** The version evaluators are given for this channel. Exactly one per channel should be active; the API enforces that, the schema cannot. */
63
+ IsActive = "IsActive",
64
+ /** Pass mark in percentage points. 95 on every sheet today ("QA Bench Mark 95%"). */
65
+ BenchmarkPct = "BenchmarkPct",
66
+ /** The twelve shared auto-fail rules: [{id, name, definition}]. Any one of them zeroes an evaluation. */
67
+ AutoFailRules = "AutoFailRules"
68
+ }
69
+ /**
70
+ * Properties for QaScorecardTemplate records
71
+ *
72
+ * @see SupportModule:QaScorecardTemplate
73
+ */
74
+ export interface QaScorecardTemplateProperties {
75
+ /** Which scorecard this is. Derived from the Case channel, and for CALL from the call direction.
76
+ *
77
+ * @type {ENUM}
78
+ * @default
79
+ * @enum {QaScorecardTemplateChannel}
80
+ */
81
+ Channel: QaScorecardTemplateChannel;
82
+ /** Bumped whenever a question or a weight changes. Evaluations pin the version they scored against, so an old score can always be reproduced.
83
+ *
84
+ * @type {NUMBER}
85
+ * @default
86
+ */
87
+ Version: number;
88
+ /** The version evaluators are given for this channel. Exactly one per channel should be active; the API enforces that, the schema cannot.
89
+ *
90
+ * @type {ENUM}
91
+ * @default
92
+ * @enum {QaScorecardTemplateIsActive}
93
+ */
94
+ IsActive: QaScorecardTemplateIsActive;
95
+ /** Pass mark in percentage points. 95 on every sheet today ("QA Bench Mark 95%").
96
+ *
97
+ * @type {NUMBER}
98
+ * @default 95
99
+ */
100
+ BenchmarkPct: number;
101
+ /** The twelve shared auto-fail rules: [{id, name, definition}]. Any one of them zeroes an evaluation.
102
+ *
103
+ * @type {JSON}
104
+ * @default
105
+ */
106
+ AutoFailRules: string;
107
+ }
108
+ /**
109
+ * QaScorecardTemplate entity from SupportModule
110
+ *
111
+ * A quality-assurance scorecard as approved by QA. One record per channel per version, holding the questions, their weights and the auto-fail rules. Data not code, so weights change without a deploy; evaluations snapshot the version they scored.
112
+ *
113
+ * @module SupportModule
114
+ * @entity QaScorecardTemplate
115
+ * @schemaId fca4942e-0f11-474a-9e5e-8b4659b54073
116
+ * @recordPrefix QAT
117
+ * @capabilities searchable, updateable, undeletable, triggerable
118
+ */
119
+ export declare class QaScorecardTemplate extends OdinRecord<QaScorecardTemplateProperties> {
120
+ entity: 'SupportModule:QaScorecardTemplate';
121
+ type: QaScorecardTemplateEntityTypes;
122
+ schemaId: 'fca4942e-0f11-474a-9e5e-8b4659b54073';
123
+ properties: QaScorecardTemplateProperties;
124
+ /** Linked QaEvaluation records (QaScorecardTemplate__QaEvaluation) */
125
+ QaEvaluation: OdinLink<LinkedOdinRecord<QaEvaluationProperties>>;
126
+ /** Linked QaScorecardQuestion records (QaScorecardTemplate__QaScorecardQuestion) */
127
+ QaScorecardQuestion: OdinLink<LinkedOdinRecord<QaScorecardQuestionProperties>>;
128
+ }
129
+ /**
130
+ * RabbitMQ routing keys for QaScorecardTemplate events
131
+ */
132
+ export declare const ROUTING_KEY_QA_SCORECARD_TEMPLATE_CREATED = "SupportModule.QaScorecardTemplate.SubDbRecordCreated";
133
+ export declare const ROUTING_KEY_QA_SCORECARD_TEMPLATE_UPDATED = "SupportModule.QaScorecardTemplate.SubDbRecordUpdated";
134
+ export declare const ROUTING_KEY_QA_SCORECARD_TEMPLATE_DELETED = "SupportModule.QaScorecardTemplate.SubDbRecordDeleted";
135
+ /**
136
+ * Type-specific routing keys for QaScorecardTemplate events
137
+ * Subscribe to these for events on specific entity types only
138
+ */
139
+ /** This is the default record type created */
140
+ export declare const ROUTING_KEY_QA_SCORECARD_TEMPLATE_DEFAULT_CREATED = "SupportModule.QaScorecardTemplate.DEFAULT.SubDbRecordCreated";
141
+ /** This is the default record type updated */
142
+ export declare const ROUTING_KEY_QA_SCORECARD_TEMPLATE_DEFAULT_UPDATED = "SupportModule.QaScorecardTemplate.DEFAULT.SubDbRecordUpdated";
143
+ /** This is the default record type deleted */
144
+ export declare const ROUTING_KEY_QA_SCORECARD_TEMPLATE_DEFAULT_DELETED = "SupportModule.QaScorecardTemplate.DEFAULT.SubDbRecordDeleted";
145
+ /** Event: QaScorecardTemplate__QaEvaluation link created */
146
+ export declare const ROUTING_KEY_LINK_QA_SCORECARD_TEMPLATE_QA_EVALUATION_CREATED = "SupportModule.QaScorecardTemplate.QaEvaluation.SubDbRecordAssociationCreated";
147
+ /** Event: QaScorecardTemplate__QaEvaluation link deleted */
148
+ export declare const ROUTING_KEY_LINK_QA_SCORECARD_TEMPLATE_QA_EVALUATION_DELETED = "SupportModule.QaScorecardTemplate.QaEvaluation.SubDbRecordAssociationDeleted";
149
+ /** Event: QaScorecardTemplate__QaScorecardQuestion link created */
150
+ export declare const ROUTING_KEY_LINK_QA_SCORECARD_TEMPLATE_QA_SCORECARD_QUESTION_CREATED = "SupportModule.QaScorecardTemplate.QaScorecardQuestion.SubDbRecordAssociationCreated";
151
+ /** Event: QaScorecardTemplate__QaScorecardQuestion link deleted */
152
+ export declare const ROUTING_KEY_LINK_QA_SCORECARD_TEMPLATE_QA_SCORECARD_QUESTION_DELETED = "SupportModule.QaScorecardTemplate.QaScorecardQuestion.SubDbRecordAssociationDeleted";