@things-factory/dataset 9.0.1 → 9.0.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.
Files changed (67) hide show
  1. package/dist-server/service/data-archive/data-archive-mutation.js +18 -6
  2. package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -1
  3. package/dist-server/service/data-archive/data-archive-query.js +15 -5
  4. package/dist-server/service/data-archive/data-archive-query.js.map +1 -1
  5. package/dist-server/service/data-archive/data-archive-type.js +11 -8
  6. package/dist-server/service/data-archive/data-archive-type.js.map +1 -1
  7. package/dist-server/service/data-archive/data-archive.js +10 -5
  8. package/dist-server/service/data-archive/data-archive.js.map +1 -1
  9. package/dist-server/service/data-key-set/data-key-item-type.js +10 -8
  10. package/dist-server/service/data-key-set/data-key-item-type.js.map +1 -1
  11. package/dist-server/service/data-key-set/data-key-set-mutation.js +18 -6
  12. package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
  13. package/dist-server/service/data-key-set/data-key-set-query.js +19 -6
  14. package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
  15. package/dist-server/service/data-key-set/data-key-set-type.js +17 -11
  16. package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -1
  17. package/dist-server/service/data-key-set/data-key-set.js +8 -3
  18. package/dist-server/service/data-key-set/data-key-set.js.map +1 -1
  19. package/dist-server/service/data-ooc/data-ooc-mutation.js +6 -2
  20. package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
  21. package/dist-server/service/data-ooc/data-ooc-query.js +27 -9
  22. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  23. package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +5 -0
  24. package/dist-server/service/data-ooc/data-ooc-subscription.js +15 -1
  25. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
  26. package/dist-server/service/data-ooc/data-ooc-type.js +29 -20
  27. package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
  28. package/dist-server/service/data-ooc/data-ooc.js +11 -6
  29. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  30. package/dist-server/service/data-sample/data-sample-mutation.js +3 -1
  31. package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -1
  32. package/dist-server/service/data-sample/data-sample-query.js +24 -8
  33. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  34. package/dist-server/service/data-sample/data-sample-type.js +13 -13
  35. package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
  36. package/dist-server/service/data-sample/data-sample.js +11 -6
  37. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  38. package/dist-server/service/data-sensor/data-sensor-mutation.js +15 -5
  39. package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
  40. package/dist-server/service/data-sensor/data-sensor-query.js +24 -8
  41. package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
  42. package/dist-server/service/data-sensor/data-sensor-type.js +19 -19
  43. package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
  44. package/dist-server/service/data-sensor/data-sensor.js +11 -9
  45. package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
  46. package/dist-server/service/data-set/data-set-mutation.js +25 -9
  47. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  48. package/dist-server/service/data-set/data-set-query.js +24 -8
  49. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  50. package/dist-server/service/data-set/data-set-type.js +3 -1
  51. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  52. package/dist-server/service/data-set-history/data-set-history-type.js +3 -3
  53. package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -1
  54. package/dist-server/service/data-set-history/data-set-history.js +56 -37
  55. package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
  56. package/dist-server/service/data-spec/data-spec.js +24 -14
  57. package/dist-server/service/data-spec/data-spec.js.map +1 -1
  58. package/dist-server/service/data-summary/data-summary-mutation.js +6 -2
  59. package/dist-server/service/data-summary/data-summary-mutation.js.map +1 -1
  60. package/dist-server/service/data-summary/data-summary-query.js +25 -8
  61. package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
  62. package/dist-server/service/data-summary/data-summary-type.js +25 -23
  63. package/dist-server/service/data-summary/data-summary-type.js.map +1 -1
  64. package/dist-server/service/data-summary/data-summary.js +8 -6
  65. package/dist-server/service/data-summary/data-summary.js.map +1 -1
  66. package/dist-server/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +11 -11
@@ -9,59 +9,65 @@ let NewDataOoc = class NewDataOoc {
9
9
  };
10
10
  exports.NewDataOoc = NewDataOoc;
11
11
  tslib_1.__decorate([
12
- (0, type_graphql_1.Field)(),
12
+ (0, type_graphql_1.Field)({ description: 'Name of the OOC event for identification.' }),
13
13
  tslib_1.__metadata("design:type", String)
14
14
  ], NewDataOoc.prototype, "name", void 0);
15
15
  tslib_1.__decorate([
16
- (0, type_graphql_1.Field)({ nullable: true }),
16
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Description of the OOC event.' }),
17
17
  tslib_1.__metadata("design:type", String)
18
18
  ], NewDataOoc.prototype, "description", void 0);
19
19
  tslib_1.__decorate([
20
- (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
20
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true, description: 'Reference to the dataset this OOC event belongs to.' }),
21
21
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
22
22
  ], NewDataOoc.prototype, "dataSet", void 0);
23
23
  tslib_1.__decorate([
24
- (0, type_graphql_1.Field)({ nullable: true }),
24
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Version of the dataset when this OOC event was created.' }),
25
25
  tslib_1.__metadata("design:type", Number)
26
26
  ], NewDataOoc.prototype, "dataSetVersion", void 0);
27
27
  tslib_1.__decorate([
28
- (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
28
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, {
29
+ nullable: true,
30
+ description: 'Reference to the data sample that triggered this OOC event.'
31
+ }),
29
32
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
30
33
  ], NewDataOoc.prototype, "dataSample", void 0);
31
34
  tslib_1.__decorate([
32
- (0, type_graphql_1.Field)(type => data_ooc_js_1.DataOocStatus, { nullable: true }),
35
+ (0, type_graphql_1.Field)(type => data_ooc_js_1.DataOocStatus, {
36
+ nullable: true,
37
+ description: 'Initial status of the OOC event in the corrective action workflow.'
38
+ }),
33
39
  tslib_1.__metadata("design:type", String)
34
40
  ], NewDataOoc.prototype, "state", void 0);
35
41
  tslib_1.__decorate([
36
- (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
42
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true, description: 'The data values that triggered the OOC event.' }),
37
43
  tslib_1.__metadata("design:type", Object)
38
44
  ], NewDataOoc.prototype, "data", void 0);
39
45
  tslib_1.__decorate([
40
- (0, type_graphql_1.Field)({ nullable: true }),
46
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Raw data string that triggered the OOC event.' }),
41
47
  tslib_1.__metadata("design:type", String)
42
48
  ], NewDataOoc.prototype, "rawData", void 0);
43
49
  tslib_1.__decorate([
44
- (0, type_graphql_1.Field)({ nullable: true }),
50
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Source of the OOC event (e.g., sensor ID, manual entry, external system).' }),
45
51
  tslib_1.__metadata("design:type", String)
46
52
  ], NewDataOoc.prototype, "source", void 0);
47
53
  tslib_1.__decorate([
48
- (0, type_graphql_1.Field)({ nullable: true }),
54
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Indicates if this event is out of control (OOC).' }),
49
55
  tslib_1.__metadata("design:type", Boolean)
50
56
  ], NewDataOoc.prototype, "ooc", void 0);
51
57
  tslib_1.__decorate([
52
- (0, type_graphql_1.Field)({ nullable: true }),
58
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Indicates if this event is out of specification (OOS).' }),
53
59
  tslib_1.__metadata("design:type", Boolean)
54
60
  ], NewDataOoc.prototype, "oos", void 0);
55
61
  tslib_1.__decorate([
56
- (0, type_graphql_1.Field)({ nullable: true }),
62
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Work date when the OOC event occurred.' }),
57
63
  tslib_1.__metadata("design:type", String)
58
64
  ], NewDataOoc.prototype, "workDate", void 0);
59
65
  tslib_1.__decorate([
60
- (0, type_graphql_1.Field)({ nullable: true }),
66
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Work shift when the OOC event occurred.' }),
61
67
  tslib_1.__metadata("design:type", String)
62
68
  ], NewDataOoc.prototype, "workShift", void 0);
63
69
  tslib_1.__decorate([
64
- (0, type_graphql_1.Field)({ nullable: true }),
70
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Timestamp when the OOC event was detected.' }),
65
71
  tslib_1.__metadata("design:type", Date)
66
72
  ], NewDataOoc.prototype, "collectedAt", void 0);
67
73
  exports.NewDataOoc = NewDataOoc = tslib_1.__decorate([
@@ -71,15 +77,18 @@ let DataOocPatch = class DataOocPatch {
71
77
  };
72
78
  exports.DataOocPatch = DataOocPatch;
73
79
  tslib_1.__decorate([
74
- (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
80
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'Unique identifier for the OOC record.' }),
75
81
  tslib_1.__metadata("design:type", String)
76
82
  ], DataOocPatch.prototype, "id", void 0);
77
83
  tslib_1.__decorate([
78
- (0, type_graphql_1.Field)(type => data_ooc_js_1.DataOocStatus, { nullable: true }),
84
+ (0, type_graphql_1.Field)(type => data_ooc_js_1.DataOocStatus, {
85
+ nullable: true,
86
+ description: 'Current status of the OOC event in the corrective action workflow.'
87
+ }),
79
88
  tslib_1.__metadata("design:type", String)
80
89
  ], DataOocPatch.prototype, "state", void 0);
81
90
  tslib_1.__decorate([
82
- (0, type_graphql_1.Field)({ nullable: true }),
91
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Description of the corrective action taken to resolve the OOC issue.' }),
83
92
  tslib_1.__metadata("design:type", String)
84
93
  ], DataOocPatch.prototype, "correctiveAction", void 0);
85
94
  exports.DataOocPatch = DataOocPatch = tslib_1.__decorate([
@@ -89,14 +98,14 @@ let DataOocList = class DataOocList {
89
98
  };
90
99
  exports.DataOocList = DataOocList;
91
100
  tslib_1.__decorate([
92
- (0, type_graphql_1.Field)(type => [data_ooc_js_1.DataOoc]),
101
+ (0, type_graphql_1.Field)(type => [data_ooc_js_1.DataOoc], { description: 'List of OOC events.' }),
93
102
  tslib_1.__metadata("design:type", Array)
94
103
  ], DataOocList.prototype, "items", void 0);
95
104
  tslib_1.__decorate([
96
- (0, type_graphql_1.Field)(type => type_graphql_1.Int),
105
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Total number of OOC events in the list.' }),
97
106
  tslib_1.__metadata("design:type", Number)
98
107
  ], DataOocList.prototype, "total", void 0);
99
108
  exports.DataOocList = DataOocList = tslib_1.__decorate([
100
- (0, type_graphql_1.ObjectType)()
109
+ (0, type_graphql_1.ObjectType)({ description: 'Represents a paginated list of OOC events.' })
101
110
  ], DataOocList);
102
111
  //# sourceMappingURL=data-ooc-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-ooc-type.js","sourceRoot":"","sources":["../../../server/service/data-ooc/data-ooc-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,iDAA+D;AAE/D,+CAAsD;AAG/C,IAAM,UAAU,GAAhB,MAAM,UAAU;CA0CtB,CAAA;AA1CY,gCAAU;AAErB;IADC,IAAA,oBAAK,GAAE;;wCACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACnC,iBAAS;2CAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACH;AAGvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChC,iBAAS;8CAAA;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC5B;AAGrB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACtC;AAGV;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACZ,IAAI;+CAAA;qBAzCP,UAAU;IADtB,IAAA,wBAAS,GAAE;GACC,UAAU,CA0CtB;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAY;CASxB,CAAA;AATY,oCAAY;AAEvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAC5B;AAGrB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACD;uBARd,YAAY;IADxB,IAAA,wBAAS,GAAE;GACC,YAAY,CASxB;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAW;CAMvB,CAAA;AANY,kCAAW;AAEtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAO,CAAC,CAAC;;0CACT;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;0CACN;sBALF,WAAW;IADvB,IAAA,yBAAU,GAAE;GACA,WAAW,CAMvB","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { DataOoc, DataOocStatus } from './data-ooc.js'\n\n@InputType()\nexport class NewDataOoc {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field(type => ObjectRef, { nullable: true })\n dataSet?: ObjectRef\n\n @Field({ nullable: true })\n dataSetVersion?: number\n\n @Field(type => ObjectRef, { nullable: true })\n dataSample?: ObjectRef\n\n @Field(type => DataOocStatus, { nullable: true })\n state?: DataOocStatus\n\n @Field(type => ScalarObject, { nullable: true })\n data?: any\n\n @Field({ nullable: true })\n rawData?: string\n\n @Field({ nullable: true })\n source?: string\n\n @Field({ nullable: true })\n ooc?: boolean\n\n @Field({ nullable: true })\n oos?: boolean\n\n @Field({ nullable: true })\n workDate?: string\n\n @Field({ nullable: true })\n workShift?: string\n\n @Field({ nullable: true })\n collectedAt?: Date\n}\n\n@InputType()\nexport class DataOocPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field(type => DataOocStatus, { nullable: true })\n state?: DataOocStatus\n\n @Field({ nullable: true })\n correctiveAction?: string\n}\n\n@ObjectType()\nexport class DataOocList {\n @Field(type => [DataOoc])\n items: DataOoc[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"data-ooc-type.js","sourceRoot":"","sources":["../../../server/service/data-ooc/data-ooc-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { DataOoc, DataOocStatus } from './data-ooc.js'\n\n@InputType()\nexport class NewDataOoc {\n @Field({ description: 'Name of the OOC event for identification.' })\n name: string\n\n @Field({ nullable: true, description: 'Description of the OOC event.' })\n description?: string\n\n @Field(type => ObjectRef, { nullable: true, description: 'Reference to the dataset this OOC event belongs to.' })\n dataSet?: ObjectRef\n\n @Field({ nullable: true, description: 'Version of the dataset when this OOC event was created.' })\n dataSetVersion?: number\n\n @Field(type => ObjectRef, {\n nullable: true,\n description: 'Reference to the data sample that triggered this OOC event.'\n })\n dataSample?: ObjectRef\n\n @Field(type => DataOocStatus, {\n nullable: true,\n description: 'Initial status of the OOC event in the corrective action workflow.'\n })\n state?: DataOocStatus\n\n @Field(type => ScalarObject, { nullable: true, description: 'The data values that triggered the OOC event.' })\n data?: any\n\n @Field({ nullable: true, description: 'Raw data string that triggered the OOC event.' })\n rawData?: string\n\n @Field({ nullable: true, description: 'Source of the OOC event (e.g., sensor ID, manual entry, external system).' })\n source?: string\n\n @Field({ nullable: true, description: 'Indicates if this event is out of control (OOC).' })\n ooc?: boolean\n\n @Field({ nullable: true, description: 'Indicates if this event is out of specification (OOS).' })\n oos?: boolean\n\n @Field({ nullable: true, description: 'Work date when the OOC event occurred.' })\n workDate?: string\n\n @Field({ nullable: true, description: 'Work shift when the OOC event occurred.' })\n workShift?: string\n\n @Field({ nullable: true, description: 'Timestamp when the OOC event was detected.' })\n collectedAt?: Date\n}\n\n@InputType()\nexport class DataOocPatch {\n @Field(type => ID, { nullable: true, description: 'Unique identifier for the OOC record.' })\n id?: string\n\n @Field(type => DataOocStatus, {\n nullable: true,\n description: 'Current status of the OOC event in the corrective action workflow.'\n })\n state?: DataOocStatus\n\n @Field({ nullable: true, description: 'Description of the corrective action taken to resolve the OOC issue.' })\n correctiveAction?: string\n}\n\n@ObjectType({ description: 'Represents a paginated list of OOC events.' })\nexport class DataOocList {\n @Field(type => [DataOoc], { description: 'List of OOC events.' })\n items: DataOoc[]\n\n @Field(type => Int, { description: 'Total number of OOC events in the list.' })\n total: number\n}\n"]}
@@ -35,7 +35,7 @@ let DataOoc = class DataOoc {
35
35
  exports.DataOoc = DataOoc;
36
36
  tslib_1.__decorate([
37
37
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
38
- (0, type_graphql_1.Field)(type => type_graphql_1.ID),
38
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { description: 'Unique identifier for the OOC record.' }),
39
39
  tslib_1.__metadata("design:type", String)
40
40
  ], DataOoc.prototype, "id", void 0);
41
41
  tslib_1.__decorate([
@@ -83,7 +83,7 @@ tslib_1.__decorate([
83
83
  ], DataOoc.prototype, "oos", void 0);
84
84
  tslib_1.__decorate([
85
85
  (0, typeorm_1.Column)({ nullable: true }),
86
- (0, type_graphql_1.Field)({ nullable: true }),
86
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Current status of the OOC event in the corrective action workflow.' }),
87
87
  tslib_1.__metadata("design:type", String)
88
88
  ], DataOoc.prototype, "state", void 0);
89
89
  tslib_1.__decorate([
@@ -98,7 +98,7 @@ tslib_1.__decorate([
98
98
  : 'varchar',
99
99
  length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
100
100
  }),
101
- (0, type_graphql_1.Field)({ nullable: true }),
101
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Instructions for corrective action to resolve the OOC issue.' }),
102
102
  tslib_1.__metadata("design:type", String)
103
103
  ], DataOoc.prototype, "correctiveInstruction", void 0);
104
104
  tslib_1.__decorate([
@@ -113,7 +113,7 @@ tslib_1.__decorate([
113
113
  : 'varchar',
114
114
  length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
115
115
  }),
116
- (0, type_graphql_1.Field)({ nullable: true }),
116
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Description of the corrective action taken to resolve the OOC issue.' }),
117
117
  tslib_1.__metadata("design:type", String)
118
118
  ], DataOoc.prototype, "correctiveAction", void 0);
119
119
  tslib_1.__decorate([
@@ -172,7 +172,10 @@ tslib_1.__decorate([
172
172
  ], DataOoc.prototype, "dataItems", void 0);
173
173
  tslib_1.__decorate([
174
174
  (0, typeorm_1.Column)('simple-json', { nullable: true }),
175
- (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
175
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, {
176
+ nullable: true,
177
+ description: 'Complete history of the OOC event, including all status changes and actions taken.'
178
+ }),
176
179
  tslib_1.__metadata("design:type", Object)
177
180
  ], DataOoc.prototype, "history", void 0);
178
181
  tslib_1.__decorate([
@@ -299,6 +302,8 @@ tslib_1.__decorate([
299
302
  exports.DataOoc = DataOoc = tslib_1.__decorate([
300
303
  (0, typeorm_1.Entity)(),
301
304
  (0, typeorm_1.Index)('ix_data_ooc_0', (dataOoc) => [dataOoc.domain, dataOoc.dataSet, dataOoc.collectedAt], { unique: false }),
302
- (0, type_graphql_1.ObjectType)({ description: 'Entity for Out of control data' })
305
+ (0, type_graphql_1.ObjectType)({
306
+ description: 'Represents an out-of-control (OOC) quality event that requires corrective action. This entity tracks the resolution workflow and maintains history of quality issues.'
307
+ })
303
308
  ], DataOoc);
304
309
  //# sourceMappingURL=data-ooc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-ooc.js","sourceRoot":"","sources":["../../../server/service/data-ooc/data-ooc.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinColumn,\n ManyToOne,\n OneToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { ActivityInstance } from '@things-factory/worklist'\n\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataSample } from '../data-sample/data-sample.js'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\nexport enum DataOocStatus {\n ISSUED = 'ISSUED',\n REVIEWED = 'REVIEWED',\n CORRECTED = 'CORRECTED'\n}\n\nregisterEnumType(DataOocStatus, {\n name: 'DataOocStatus',\n description: 'Out of control data corrective action process progress status'\n})\n\n@Entity()\n@Index('ix_data_ooc_0', (dataOoc: DataOoc) => [dataOoc.domain, dataOoc.dataSet, dataOoc.collectedAt], { unique: false })\n@ObjectType({ description: 'Entity for Out of control data' })\nexport class DataOoc {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((dataOoc: DataOoc) => dataOoc.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @ManyToOne(type => DataSet)\n @Field(type => DataSet, { nullable: true })\n dataSet?: DataSet\n\n @RelationId((dataOoc: DataOoc) => dataOoc.dataSet)\n dataSetId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n dataSetVersion?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n ooc?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n oos?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n state?: DataOocStatus\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n correctiveInstruction?: string\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n correctiveAction?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n useCase?: string\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key01?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key02?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key03?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key04?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key05?: string = ''\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n partitionKeys?: { [key: string]: any }\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n data?: any\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n judgment?: any\n\n @Field(type => [DataItem], { nullable: true })\n dataItems?: DataItem[]\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n history?: any\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n rawData?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n source?: string\n\n @OneToOne(type => DataSample, { nullable: true })\n @JoinColumn()\n @Field(type => DataSample, { nullable: true })\n dataSample?: DataSample\n\n @RelationId((dataOoc: DataOoc) => dataOoc.dataSample)\n dataSampleId?: string\n\n @OneToOne(type => ActivityInstance, { nullable: true })\n @JoinColumn()\n @Field({ nullable: true })\n reviewActivityInstance?: ActivityInstance\n\n @RelationId((dataOoc: DataOoc) => dataOoc.reviewActivityInstance)\n reviewActivityInstanceId?: string\n\n @OneToOne(type => ActivityInstance, { nullable: true })\n @JoinColumn()\n @Field({ nullable: true })\n resolveActivityInstance?: ActivityInstance\n\n @RelationId((dataOoc: DataOoc) => dataOoc.resolveActivityInstance)\n resolveActivityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n workDate?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n workShift?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n collectedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n reviewedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n correctedAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n reviewer?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.reviewer)\n reviewerId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n corrector?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.corrector)\n correctorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"data-ooc.js","sourceRoot":"","sources":["../../../server/service/data-ooc/data-ooc.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinColumn,\n ManyToOne,\n OneToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { ActivityInstance } from '@things-factory/worklist'\n\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataSample } from '../data-sample/data-sample.js'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\nexport enum DataOocStatus {\n ISSUED = 'ISSUED',\n REVIEWED = 'REVIEWED',\n CORRECTED = 'CORRECTED'\n}\n\nregisterEnumType(DataOocStatus, {\n name: 'DataOocStatus',\n description: 'Out of control data corrective action process progress status'\n})\n\n@Entity()\n@Index('ix_data_ooc_0', (dataOoc: DataOoc) => [dataOoc.domain, dataOoc.dataSet, dataOoc.collectedAt], { unique: false })\n@ObjectType({\n description:\n 'Represents an out-of-control (OOC) quality event that requires corrective action. This entity tracks the resolution workflow and maintains history of quality issues.'\n})\nexport class DataOoc {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Unique identifier for the OOC record.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((dataOoc: DataOoc) => dataOoc.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @ManyToOne(type => DataSet)\n @Field(type => DataSet, { nullable: true })\n dataSet?: DataSet\n\n @RelationId((dataOoc: DataOoc) => dataOoc.dataSet)\n dataSetId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n dataSetVersion?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n ooc?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n oos?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Current status of the OOC event in the corrective action workflow.' })\n state?: DataOocStatus\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true, description: 'Instructions for corrective action to resolve the OOC issue.' })\n correctiveInstruction?: string\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true, description: 'Description of the corrective action taken to resolve the OOC issue.' })\n correctiveAction?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n useCase?: string\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key01?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key02?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key03?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key04?: string = ''\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n key05?: string = ''\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n partitionKeys?: { [key: string]: any }\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n data?: any\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n judgment?: any\n\n @Field(type => [DataItem], { nullable: true })\n dataItems?: DataItem[]\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, {\n nullable: true,\n description: 'Complete history of the OOC event, including all status changes and actions taken.'\n })\n history?: any\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined\n })\n @Field({ nullable: true })\n rawData?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n source?: string\n\n @OneToOne(type => DataSample, { nullable: true })\n @JoinColumn()\n @Field(type => DataSample, { nullable: true })\n dataSample?: DataSample\n\n @RelationId((dataOoc: DataOoc) => dataOoc.dataSample)\n dataSampleId?: string\n\n @OneToOne(type => ActivityInstance, { nullable: true })\n @JoinColumn()\n @Field({ nullable: true })\n reviewActivityInstance?: ActivityInstance\n\n @RelationId((dataOoc: DataOoc) => dataOoc.reviewActivityInstance)\n reviewActivityInstanceId?: string\n\n @OneToOne(type => ActivityInstance, { nullable: true })\n @JoinColumn()\n @Field({ nullable: true })\n resolveActivityInstance?: ActivityInstance\n\n @RelationId((dataOoc: DataOoc) => dataOoc.resolveActivityInstance)\n resolveActivityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n workDate?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n workShift?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n collectedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n reviewedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n correctedAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n reviewer?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.reviewer)\n reviewerId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n corrector?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.corrector)\n correctorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((dataOoc: DataOoc) => dataOoc.updater)\n updaterId?: string\n}\n"]}
@@ -15,7 +15,9 @@ exports.DataSampleMutation = DataSampleMutation;
15
15
  tslib_1.__decorate([
16
16
  (0, type_graphql_1.Directive)('@privilege(category: "data-sample", privilege: "mutation", domainOwnerGranted: true)'),
17
17
  (0, type_graphql_1.Directive)('@transaction'),
18
- (0, type_graphql_1.Mutation)(returns => data_sample_js_1.DataSample, { description: 'To create new data sample' }),
18
+ (0, type_graphql_1.Mutation)(returns => data_sample_js_1.DataSample, {
19
+ description: 'Creates a new data sample record with collected values, metadata, and links to the dataset. Used for both manual and automated data collection processes.'
20
+ }),
19
21
  tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSample')),
20
22
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
21
23
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-mutation.js","sourceRoot":"","sources":["../../../server/service/data-sample/data-sample-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,mFAA0E;AAC1E,qDAA6C;AAC7C,+DAAqD;AAG9C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAIvB,AAAN,KAAK,CAAC,gBAAgB,CACD,UAAyB,EACrC,OAAwB;QAE/B,OAAO,MAAM,IAAA,wCAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;CACF,CAAA;AAVY,gDAAkB;AAIvB;IAHL,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,2BAAU,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAE3E,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CADyB,mCAAa;;0DAI7C;6BATU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,2BAAU,CAAC;GACR,kBAAkB,CAU9B","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { createDataSample } from '../../controllers/create-data-sample.js'\nimport { DataSample } from './data-sample.js'\nimport { NewDataSample } from './data-sample-type.js'\n\n@Resolver(DataSample)\nexport class DataSampleMutation {\n @Directive('@privilege(category: \"data-sample\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataSample, { description: 'To create new data sample' })\n async createDataSample(\n @Arg('dataSample') dataSample: NewDataSample,\n @Ctx() context: ResolverContext\n ): Promise<DataSample> {\n return await createDataSample(dataSample, context)\n }\n}\n"]}
1
+ {"version":3,"file":"data-sample-mutation.js","sourceRoot":"","sources":["../../../server/service/data-sample/data-sample-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,mFAA0E;AAC1E,qDAA6C;AAC7C,+DAAqD;AAG9C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAOvB,AAAN,KAAK,CAAC,gBAAgB,CACD,UAAyB,EACrC,OAAwB;QAE/B,OAAO,MAAM,IAAA,wCAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;CACF,CAAA;AAbY,gDAAkB;AAOvB;IANL,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,2BAAU,EAAE;QAC/B,WAAW,EACT,2JAA2J;KAC9J,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CADyB,mCAAa;;0DAI7C;6BAZU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,2BAAU,CAAC;GACR,kBAAkB,CAa9B","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { createDataSample } from '../../controllers/create-data-sample.js'\nimport { DataSample } from './data-sample.js'\nimport { NewDataSample } from './data-sample-type.js'\n\n@Resolver(DataSample)\nexport class DataSampleMutation {\n @Directive('@privilege(category: \"data-sample\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataSample, {\n description:\n 'Creates a new data sample record with collected values, metadata, and links to the dataset. Used for both manual and automated data collection processes.'\n })\n async createDataSample(\n @Arg('dataSample') dataSample: NewDataSample,\n @Ctx() context: ResolverContext\n ): Promise<DataSample> {\n return await createDataSample(dataSample, context)\n }\n}\n"]}
@@ -149,7 +149,9 @@ let DataSampleQuery = class DataSampleQuery {
149
149
  exports.DataSampleQuery = DataSampleQuery;
150
150
  tslib_1.__decorate([
151
151
  (0, type_graphql_1.Directive)('@privilege(category: "data-sample", privilege: "query", domainOwnerGranted: true)'),
152
- (0, type_graphql_1.Query)(returns => data_sample_js_1.DataSample, { description: 'To fetch a data sample' }),
152
+ (0, type_graphql_1.Query)(returns => data_sample_js_1.DataSample, {
153
+ description: 'Retrieves a single data sample by its unique identifier. This query fetches detailed information about a specific data sample including its values, metadata, collection timestamp, and associated dataset information.'
154
+ }),
153
155
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
154
156
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
155
157
  tslib_1.__metadata("design:type", Function),
@@ -158,7 +160,9 @@ tslib_1.__decorate([
158
160
  ], DataSampleQuery.prototype, "dataSample", null);
159
161
  tslib_1.__decorate([
160
162
  (0, type_graphql_1.Directive)('@privilege(category: "data-sample", privilege: "query", domainOwnerGranted: true)'),
161
- (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, { description: 'To fetch multiple data samples' }),
163
+ (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, {
164
+ description: 'Retrieves multiple data samples with pagination and filtering support. This query allows searching samples by name and description, and is used for listing and browsing collected data samples across all datasets.'
165
+ }),
162
166
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
163
167
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
164
168
  tslib_1.__metadata("design:type", Function),
@@ -167,7 +171,9 @@ tslib_1.__decorate([
167
171
  ], DataSampleQuery.prototype, "dataSamples", null);
168
172
  tslib_1.__decorate([
169
173
  (0, type_graphql_1.Directive)('@privilege(category: "data-sample", privilege: "query", domainOwnerGranted: true)'),
170
- (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, { description: 'To fetch multiple data samples by data set' }),
174
+ (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, {
175
+ description: "Retrieves data samples that belong to a specific dataset. This query filters samples by dataset ID and includes searchable fields based on the dataset's key configuration, allowing for targeted data analysis within a particular dataset context."
176
+ }),
171
177
  tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
172
178
  tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
173
179
  tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
@@ -177,7 +183,9 @@ tslib_1.__decorate([
177
183
  ], DataSampleQuery.prototype, "dataSamplesByDataSet", null);
178
184
  tslib_1.__decorate([
179
185
  (0, type_graphql_1.Directive)('@privilege(category: "data-sample", privilege: "query", domainOwnerGranted: true)'),
180
- (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, { description: 'To fetch multiple data samples by data key set' }),
186
+ (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, {
187
+ description: 'Retrieves data samples that belong to datasets using a specific data key set. This query filters samples by key set ID and enables cross-dataset analysis based on shared key configurations, useful for comparing data across related datasets.'
188
+ }),
181
189
  tslib_1.__param(0, (0, type_graphql_1.Arg)('dataKeySetId')),
182
190
  tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
183
191
  tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
@@ -186,7 +194,9 @@ tslib_1.__decorate([
186
194
  tslib_1.__metadata("design:returntype", Promise)
187
195
  ], DataSampleQuery.prototype, "dataSamplesByDataKeySet", null);
188
196
  tslib_1.__decorate([
189
- (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, { description: 'To fetch multiple DataSamples by period' }),
197
+ (0, type_graphql_1.Query)(returns => data_sample_type_js_1.DataSampleList, {
198
+ description: 'Retrieves data samples within a specified time period for a given dataset. This query supports various period options (today, this month, 30 days, etc.) and is essential for time-based data analysis, trend monitoring, and historical data review.'
199
+ }),
190
200
  tslib_1.__param(0, (0, type_graphql_1.Arg)('period')),
191
201
  tslib_1.__param(1, (0, type_graphql_1.Arg)('dataSetName')),
192
202
  tslib_1.__param(2, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
@@ -196,21 +206,27 @@ tslib_1.__decorate([
196
206
  tslib_1.__metadata("design:returntype", Promise)
197
207
  ], DataSampleQuery.prototype, "dataSamplesByPeriod", null);
198
208
  tslib_1.__decorate([
199
- (0, type_graphql_1.FieldResolver)(type => [data_item_type_js_1.DataItem]),
209
+ (0, type_graphql_1.FieldResolver)(type => [data_item_type_js_1.DataItem], {
210
+ description: 'Retrieves the data items (field definitions) associated with this data sample. These items define the structure and validation rules for the sample data, including field names, types, and constraints.'
211
+ }),
200
212
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
201
213
  tslib_1.__metadata("design:type", Function),
202
214
  tslib_1.__metadata("design:paramtypes", [data_sample_js_1.DataSample]),
203
215
  tslib_1.__metadata("design:returntype", Promise)
204
216
  ], DataSampleQuery.prototype, "dataItems", null);
205
217
  tslib_1.__decorate([
206
- (0, type_graphql_1.FieldResolver)(type => data_set_js_1.DataSet),
218
+ (0, type_graphql_1.FieldResolver)(type => data_set_js_1.DataSet, {
219
+ description: 'Retrieves the dataset that this data sample belongs to. This field resolver provides access to the dataset configuration, metadata, and settings associated with the sample.'
220
+ }),
207
221
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
208
222
  tslib_1.__metadata("design:type", Function),
209
223
  tslib_1.__metadata("design:paramtypes", [data_sample_js_1.DataSample]),
210
224
  tslib_1.__metadata("design:returntype", Promise)
211
225
  ], DataSampleQuery.prototype, "dataSet", null);
212
226
  tslib_1.__decorate([
213
- (0, type_graphql_1.FieldResolver)(type => data_ooc_js_1.DataOoc),
227
+ (0, type_graphql_1.FieldResolver)(type => data_ooc_js_1.DataOoc, {
228
+ description: 'Retrieves the out-of-control (OOC) record associated with this data sample, if it exists. This field resolver is used when the sample has been flagged as out of control or out of specification, providing access to the corrective action workflow.'
229
+ }),
214
230
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
215
231
  tslib_1.__metadata("design:type", Function),
216
232
  tslib_1.__metadata("design:paramtypes", [data_sample_js_1.DataSample]),
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-query.js","sourceRoot":"","sources":["../../../server/service/data-sample/data-sample-query.ts"],"names":[],"mappings":";;;;AAAA,qCAA4B;AAC5B,+CAA8F;AAE9F,yDAAgD;AAChD,iDAM8B;AAC9B,uDAA2D;AAE3D,qEAA4D;AAC5D,iFAAwE;AACxE,qEAAwD;AACxD,yDAAiD;AACjD,yDAAiD;AACjD,qDAA6C;AAC7C,+DAAsD;AAG/C,IAAM,eAAe,GAArB,MAAM,eAAe;IAGpB,AAAN,KAAK,CAAC,UAAU,CAAY,EAAU,EAAS,OAAwB;QACrE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,2BAAU,CAAC,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CACU,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,UAAU,EAAE,IAAA,qBAAa,EAAC,2BAAU,CAAC;YACrC,MAAM;YACN,MAAM;YACN,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CACN,SAAiB,EACV,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAa,EAAC,qBAAO,CAAC,CAAC,OAAO,CAAC;YACnD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YAC1F,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,SAAS,GAAG,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAA;QAC3D,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;QAEzE,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,UAAU,EAAE,IAAA,qBAAa,EAAC,2BAAU,CAAC;YACrC,MAAM;YACN,MAAM;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;SACzD,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE;YACzD,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAIK,AAAN,KAAK,CAAC,uBAAuB,CACN,YAAoB,EAChB,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QAClF,MAAM,YAAY,GAAG,UAAU,EAAE,YAAY,IAAI,EAAE,CAAA;QACnD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;QAEzE,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,UAAU,EAAE,IAAA,qBAAa,EAAC,2BAAU,CAAC;YACrC,MAAM;YACN,MAAM;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;SACzD,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,+BAA+B,EAAE;YACpE,YAAY;SACb,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB,CACR,MAA+F,EAC1F,WAAmB,EACd,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;gBAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAA;YACnD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YACrD,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAC5B,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,IAAA,8BAAsB,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;QAEnF,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAa,EAAC,qBAAO,CAAC,CAAC,OAAO,CAAC;YACnD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;YAC9F,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,WAAW,GAAG,CAAC,CAAA;QAC/E,CAAC;QAED,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;QACrC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aAClB;SACF,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAA;QAC3D,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;QAEzE,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,UAAU,EAAE,IAAA,qBAAa,EAAC,2BAAU,CAAC;YACrC,MAAM,EAAE;gBACN,GAAG,MAAM;gBACT,OAAO,EAAE,cAAc;aACxB;YACD,MAAM;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;SACzD,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE;YACzD,SAAS,EAAE,OAAO,CAAC,EAAE;SACtB,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAS,UAAsB;QAC5C,MAAM,cAAc,GAClB,UAAU,CAAC,SAAS;YACpB,CAAC,MAAM,IAAA,qBAAa,EAAC,oCAAc,CAAC,CAAC,OAAO,CAAC;gBAC3C,KAAK,EAAE;oBACL,UAAU,EAAE,UAAU,CAAC,SAAS;oBAChC,OAAO,EAAE,UAAU,CAAC,cAAc;iBACnC;aACF,CAAC,CAAC,CAAA;QAEL,OAAO,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACpE,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,UAAsB;QAC1C,OAAO,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,qBAAO,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACvG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,UAAsB;QAC1C,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACrC,OAAO,MAAM,IAAA,qBAAa,EAAC,qBAAO,CAAC,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACtF,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,sBAAsB,CAAS,UAAsB;QACzD,OAAO,CACL,UAAU,CAAC,wBAAwB;YACnC,CAAC,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAC/F,CAAA;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,UAAsB;QACzC,OAAO,UAAU,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,UAAsB;QAC1C,OAAO,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,UAAsB;QAC1C,OAAO,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;CACF,CAAA;AA1MY,0CAAe;AAGpB;IAFL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,2BAAU,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACtD,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iDAM7C;AAIK;IAFL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oCAAc,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAEjF,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;kDAe3C;AAIK;IAFL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oCAAc,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAE7F,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDAD2B,iBAAS;;2DA8B3C;AAIK;IAFL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oCAAc,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;IAEjG,mBAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDAD2B,iBAAS;;8DAsB3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oCAAc,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;IAE1F,mBAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IACb,mBAAA,IAAA,kBAAG,EAAC,aAAa,CAAC,CAAA;IAClB,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6DAD2B,iBAAS;;0DAqD3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAAQ,CAAC,CAAC;IACjB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;gDAW7C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAO,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;8CAE3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAO,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;8CAI3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAgB,CAAC;IACV,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;6DAK1D;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;6CAE1C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;8CAE3C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAa,2BAAU;;8CAE3C;0BAzMU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,2BAAU,CAAC;GACR,eAAe,CA0M3B","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport {\n Domain,\n getQueryBuilderFromListParams,\n getRepository,\n getISOStringsForPeriod,\n ListParam\n} from '@things-factory/shell'\nimport { ActivityInstance } from '@things-factory/worklist'\n\nimport { DataKeySet } from '../data-key-set/data-key-set.js'\nimport { DataSetHistory } from '../data-set-history/data-set-history.js'\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataOoc } from '../data-ooc/data-ooc.js'\nimport { DataSample } from './data-sample.js'\nimport { DataSampleList } from './data-sample-type.js'\n\n@Resolver(DataSample)\nexport class DataSampleQuery {\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSample, { description: 'To fetch a data sample' })\n async dataSample(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSample> {\n const { domain } = context.state\n\n return await getRepository(DataSample).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSampleList, { description: 'To fetch multiple data samples' })\n async dataSamples(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params,\n domain,\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSampleList, { description: 'To fetch multiple data samples by data set' })\n async dataSamplesByDataSet(\n @Arg('dataSetId') dataSetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params,\n domain,\n alias: 'sample',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('sample.dataSet', 'ds', 'ds.id = :dataSetId', {\n dataSetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSampleList, { description: 'To fetch multiple data samples by data key set' })\n async dataSamplesByDataKeySet(\n @Arg('dataKeySetId') dataKeySetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const dataKeySet = await getRepository(DataKeySet).findOneBy({ id: dataKeySetId })\n const dataKeyItems = dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params,\n domain,\n alias: 'sample',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('sample.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', {\n dataKeySetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => DataSampleList, { description: 'To fetch multiple DataSamples by period' })\n async dataSamplesByPeriod(\n @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month',\n @Arg('dataSetName') dataSetName: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const { date, month } = params.filters.reduce(\n (acc, filter) => {\n if (filter.name === 'date') acc.date = filter.value\n if (filter.name === 'month') acc.month = filter.value\n return acc\n },\n { date: null, month: null }\n )\n\n const { from, to } = await getISOStringsForPeriod(period, { date, month }, context)\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`)\n }\n\n const { filters = [] } = params || {}\n const alteredFilters = filters.concat([\n {\n name: 'collectedAt',\n operator: 'between',\n value: [from, to]\n }\n ])\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params: {\n ...params,\n filters: alteredFilters\n },\n domain,\n alias: 'sample',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('sample.dataSet', 'ds', 'ds.id = :dataSetId', {\n dataSetId: dataSet.id\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [DataItem])\n async dataItems(@Root() dataSample: DataSample): Promise<DataItem[]> {\n const dataSetHistory: DataSetHistory =\n dataSample.dataSetId &&\n (await getRepository(DataSetHistory).findOne({\n where: {\n originalId: dataSample.dataSetId,\n version: dataSample.dataSetVersion\n }\n }))\n\n return dataSetHistory?.dataItems.filter(item => item.active) || []\n }\n\n @FieldResolver(type => DataSet)\n async dataSet(@Root() dataSample: DataSample): Promise<DataSet> {\n return dataSample.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSample.dataSetId }))\n }\n\n @FieldResolver(type => DataOoc)\n async dataOoc(@Root() dataSample: DataSample): Promise<DataOoc> {\n if (dataSample.ooc || dataSample.oos) {\n return await getRepository(DataOoc).findOneBy({ dataSample: { id: dataSample.id } })\n }\n }\n\n @FieldResolver(type => ActivityInstance)\n async reviewActivityInstance(@Root() dataSample: DataSample): Promise<ActivityInstance> {\n return (\n dataSample.reviewActivityInstanceId &&\n (await getRepository(ActivityInstance).findOneBy({ id: dataSample.reviewActivityInstanceId }))\n )\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataSample: DataSample): Promise<Domain> {\n return dataSample.domainId && (await getRepository(Domain).findOneBy({ id: dataSample.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataSample: DataSample): Promise<User> {\n return dataSample.updaterId && (await getRepository(User).findOneBy({ id: dataSample.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataSample: DataSample): Promise<User> {\n return dataSample.creatorId && (await getRepository(User).findOneBy({ id: dataSample.creatorId }))\n }\n}\n"]}
1
+ {"version":3,"file":"data-sample-query.js","sourceRoot":"","sources":["../../../server/service/data-sample/data-sample-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport {\n Domain,\n getQueryBuilderFromListParams,\n getRepository,\n getISOStringsForPeriod,\n ListParam\n} from '@things-factory/shell'\nimport { ActivityInstance } from '@things-factory/worklist'\n\nimport { DataKeySet } from '../data-key-set/data-key-set.js'\nimport { DataSetHistory } from '../data-set-history/data-set-history.js'\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataOoc } from '../data-ooc/data-ooc.js'\nimport { DataSample } from './data-sample.js'\nimport { DataSampleList } from './data-sample-type.js'\n\n@Resolver(DataSample)\nexport class DataSampleQuery {\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSample, {\n description:\n 'Retrieves a single data sample by its unique identifier. This query fetches detailed information about a specific data sample including its values, metadata, collection timestamp, and associated dataset information.'\n })\n async dataSample(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSample> {\n const { domain } = context.state\n\n return await getRepository(DataSample).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSampleList, {\n description:\n 'Retrieves multiple data samples with pagination and filtering support. This query allows searching samples by name and description, and is used for listing and browsing collected data samples across all datasets.'\n })\n async dataSamples(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params,\n domain,\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSampleList, {\n description:\n \"Retrieves data samples that belong to a specific dataset. This query filters samples by dataset ID and includes searchable fields based on the dataset's key configuration, allowing for targeted data analysis within a particular dataset context.\"\n })\n async dataSamplesByDataSet(\n @Arg('dataSetId') dataSetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id: dataSetId },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params,\n domain,\n alias: 'sample',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('sample.dataSet', 'ds', 'ds.id = :dataSetId', {\n dataSetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-sample\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSampleList, {\n description:\n 'Retrieves data samples that belong to datasets using a specific data key set. This query filters samples by key set ID and enables cross-dataset analysis based on shared key configurations, useful for comparing data across related datasets.'\n })\n async dataSamplesByDataKeySet(\n @Arg('dataKeySetId') dataKeySetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const dataKeySet = await getRepository(DataKeySet).findOneBy({ id: dataKeySetId })\n const dataKeyItems = dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params,\n domain,\n alias: 'sample',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('sample.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', {\n dataKeySetId\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => DataSampleList, {\n description:\n 'Retrieves data samples within a specified time period for a given dataset. This query supports various period options (today, this month, 30 days, etc.) and is essential for time-based data analysis, trend monitoring, and historical data review.'\n })\n async dataSamplesByPeriod(\n @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month',\n @Arg('dataSetName') dataSetName: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSampleList> {\n const { domain } = context.state\n\n const { date, month } = params.filters.reduce(\n (acc, filter) => {\n if (filter.name === 'date') acc.date = filter.value\n if (filter.name === 'month') acc.month = filter.value\n return acc\n },\n { date: null, month: null }\n )\n\n const { from, to } = await getISOStringsForPeriod(period, { date, month }, context)\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`)\n }\n\n const { filters = [] } = params || {}\n const alteredFilters = filters.concat([\n {\n name: 'collectedAt',\n operator: 'between',\n value: [from, to]\n }\n ])\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSample),\n params: {\n ...params,\n filters: alteredFilters\n },\n domain,\n alias: 'sample',\n searchables: ['name', 'description'].concat(searchables)\n }).innerJoin('sample.dataSet', 'ds', 'ds.id = :dataSetId', {\n dataSetId: dataSet.id\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [DataItem], {\n description:\n 'Retrieves the data items (field definitions) associated with this data sample. These items define the structure and validation rules for the sample data, including field names, types, and constraints.'\n })\n async dataItems(@Root() dataSample: DataSample): Promise<DataItem[]> {\n const dataSetHistory: DataSetHistory =\n dataSample.dataSetId &&\n (await getRepository(DataSetHistory).findOne({\n where: {\n originalId: dataSample.dataSetId,\n version: dataSample.dataSetVersion\n }\n }))\n\n return dataSetHistory?.dataItems.filter(item => item.active) || []\n }\n\n @FieldResolver(type => DataSet, {\n description:\n 'Retrieves the dataset that this data sample belongs to. This field resolver provides access to the dataset configuration, metadata, and settings associated with the sample.'\n })\n async dataSet(@Root() dataSample: DataSample): Promise<DataSet> {\n return dataSample.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSample.dataSetId }))\n }\n\n @FieldResolver(type => DataOoc, {\n description:\n 'Retrieves the out-of-control (OOC) record associated with this data sample, if it exists. This field resolver is used when the sample has been flagged as out of control or out of specification, providing access to the corrective action workflow.'\n })\n async dataOoc(@Root() dataSample: DataSample): Promise<DataOoc> {\n if (dataSample.ooc || dataSample.oos) {\n return await getRepository(DataOoc).findOneBy({ dataSample: { id: dataSample.id } })\n }\n }\n\n @FieldResolver(type => ActivityInstance)\n async reviewActivityInstance(@Root() dataSample: DataSample): Promise<ActivityInstance> {\n return (\n dataSample.reviewActivityInstanceId &&\n (await getRepository(ActivityInstance).findOneBy({ id: dataSample.reviewActivityInstanceId }))\n )\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataSample: DataSample): Promise<Domain> {\n return dataSample.domainId && (await getRepository(Domain).findOneBy({ id: dataSample.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataSample: DataSample): Promise<User> {\n return dataSample.updaterId && (await getRepository(User).findOneBy({ id: dataSample.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataSample: DataSample): Promise<User> {\n return dataSample.creatorId && (await getRepository(User).findOneBy({ id: dataSample.creatorId }))\n }\n}\n"]}
@@ -9,43 +9,43 @@ let NewDataSample = class NewDataSample {
9
9
  };
10
10
  exports.NewDataSample = NewDataSample;
11
11
  tslib_1.__decorate([
12
- (0, type_graphql_1.Field)({ nullable: true }),
12
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Optional name for the data sample.' }),
13
13
  tslib_1.__metadata("design:type", String)
14
14
  ], NewDataSample.prototype, "name", void 0);
15
15
  tslib_1.__decorate([
16
- (0, type_graphql_1.Field)({ nullable: true }),
16
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Optional description of the data sample.' }),
17
17
  tslib_1.__metadata("design:type", String)
18
18
  ], NewDataSample.prototype, "description", void 0);
19
19
  tslib_1.__decorate([
20
- (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
20
+ (0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true, description: 'Reference to the dataset this sample belongs to.' }),
21
21
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
22
22
  ], NewDataSample.prototype, "dataSet", void 0);
23
23
  tslib_1.__decorate([
24
- (0, type_graphql_1.Field)({ nullable: true }),
24
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Version of the dataset when this sample was collected.' }),
25
25
  tslib_1.__metadata("design:type", Number)
26
26
  ], NewDataSample.prototype, "dataSetVersion", void 0);
27
27
  tslib_1.__decorate([
28
- (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
28
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true, description: 'The actual collected data values for this sample.' }),
29
29
  tslib_1.__metadata("design:type", Object)
30
30
  ], NewDataSample.prototype, "data", void 0);
31
31
  tslib_1.__decorate([
32
- (0, type_graphql_1.Field)({ nullable: true }),
32
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Raw data string before processing or transformation.' }),
33
33
  tslib_1.__metadata("design:type", String)
34
34
  ], NewDataSample.prototype, "rawData", void 0);
35
35
  tslib_1.__decorate([
36
- (0, type_graphql_1.Field)({ nullable: true }),
36
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Source of the data sample (e.g., sensor ID, manual entry, external system).' }),
37
37
  tslib_1.__metadata("design:type", String)
38
38
  ], NewDataSample.prototype, "source", void 0);
39
39
  tslib_1.__decorate([
40
- (0, type_graphql_1.Field)({ nullable: true }),
40
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Work date when the data sample was collected.' }),
41
41
  tslib_1.__metadata("design:type", String)
42
42
  ], NewDataSample.prototype, "workDate", void 0);
43
43
  tslib_1.__decorate([
44
- (0, type_graphql_1.Field)({ nullable: true }),
44
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Work shift when the data sample was collected.' }),
45
45
  tslib_1.__metadata("design:type", String)
46
46
  ], NewDataSample.prototype, "workShift", void 0);
47
47
  tslib_1.__decorate([
48
- (0, type_graphql_1.Field)({ nullable: true }),
48
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Timestamp when the data sample was collected.' }),
49
49
  tslib_1.__metadata("design:type", Date)
50
50
  ], NewDataSample.prototype, "collectedAt", void 0);
51
51
  exports.NewDataSample = NewDataSample = tslib_1.__decorate([
@@ -55,14 +55,14 @@ let DataSampleList = class DataSampleList {
55
55
  };
56
56
  exports.DataSampleList = DataSampleList;
57
57
  tslib_1.__decorate([
58
- (0, type_graphql_1.Field)(type => [data_sample_js_1.DataSample]),
58
+ (0, type_graphql_1.Field)(type => [data_sample_js_1.DataSample], { description: 'List of data samples.' }),
59
59
  tslib_1.__metadata("design:type", Array)
60
60
  ], DataSampleList.prototype, "items", void 0);
61
61
  tslib_1.__decorate([
62
- (0, type_graphql_1.Field)(type => type_graphql_1.Int),
62
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Total number of data samples in the list.' }),
63
63
  tslib_1.__metadata("design:type", Number)
64
64
  ], DataSampleList.prototype, "total", void 0);
65
65
  exports.DataSampleList = DataSampleList = tslib_1.__decorate([
66
- (0, type_graphql_1.ObjectType)()
66
+ (0, type_graphql_1.ObjectType)({ description: 'Represents a paginated list of data samples.' })
67
67
  ], DataSampleList);
68
68
  //# sourceMappingURL=data-sample-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-type.js","sourceRoot":"","sources":["../../../server/service/data-sample/data-sample-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAEhE,iDAA+D;AAE/D,qDAA6C;AAGtC,IAAM,aAAa,GAAnB,MAAM,aAAa;CA8BzB,CAAA;AA9BY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACnC,iBAAS;8CAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACH;AAGvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACtC;AAGV;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACZ,IAAI;kDAAA;wBA7BP,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CA8BzB;AAGM,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,2BAAU,CAAC,CAAC;;6CACT;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;6CACN;yBALF,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { DataSample } from './data-sample.js'\n\n@InputType()\nexport class NewDataSample {\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field(type => ObjectRef, { nullable: true })\n dataSet?: ObjectRef\n\n @Field({ nullable: true })\n dataSetVersion?: number\n\n @Field(type => ScalarObject, { nullable: true })\n data?: any\n\n @Field({ nullable: true })\n rawData?: string\n\n @Field({ nullable: true })\n source?: string\n\n @Field({ nullable: true })\n workDate?: string\n\n @Field({ nullable: true })\n workShift?: string\n\n @Field({ nullable: true })\n collectedAt?: Date\n}\n\n@ObjectType()\nexport class DataSampleList {\n @Field(type => [DataSample])\n items: DataSample[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"data-sample-type.js","sourceRoot":"","sources":["../../../server/service/data-sample/data-sample-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAEhE,iDAA+D;AAE/D,qDAA6C;AAGtC,IAAM,aAAa,GAAnB,MAAM,aAAa;CA8BzB,CAAA;AA9BY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;;2CAChE;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;;kDAC/D;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;sCACpG,iBAAS;8CAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;;qDAC1E;AAGvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;2CACxG;AAGV;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;;8CAC/E;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,6EAA6E,EAAE,CAAC;;6CACvG;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;;+CACvE;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;;gDACvE;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;sCAC1E,IAAI;kDAAA;wBA7BP,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CA8BzB;AAGM,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,2BAAU,CAAC,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;6CACnD;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;;6CACpE;yBALF,cAAc;IAD1B,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;GAC/D,cAAc,CAM1B","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { DataSample } from './data-sample.js'\n\n@InputType()\nexport class NewDataSample {\n @Field({ nullable: true, description: 'Optional name for the data sample.' })\n name?: string\n\n @Field({ nullable: true, description: 'Optional description of the data sample.' })\n description?: string\n\n @Field(type => ObjectRef, { nullable: true, description: 'Reference to the dataset this sample belongs to.' })\n dataSet?: ObjectRef\n\n @Field({ nullable: true, description: 'Version of the dataset when this sample was collected.' })\n dataSetVersion?: number\n\n @Field(type => ScalarObject, { nullable: true, description: 'The actual collected data values for this sample.' })\n data?: any\n\n @Field({ nullable: true, description: 'Raw data string before processing or transformation.' })\n rawData?: string\n\n @Field({ nullable: true, description: 'Source of the data sample (e.g., sensor ID, manual entry, external system).' })\n source?: string\n\n @Field({ nullable: true, description: 'Work date when the data sample was collected.' })\n workDate?: string\n\n @Field({ nullable: true, description: 'Work shift when the data sample was collected.' })\n workShift?: string\n\n @Field({ nullable: true, description: 'Timestamp when the data sample was collected.' })\n collectedAt?: Date\n}\n\n@ObjectType({ description: 'Represents a paginated list of data samples.' })\nexport class DataSampleList {\n @Field(type => [DataSample], { description: 'List of data samples.' })\n items: DataSample[]\n\n @Field(type => Int, { description: 'Total number of data samples in the list.' })\n total: number\n}\n"]}