@flusys/nestjs-form-builder 0.1.0-beta.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 (82) hide show
  1. package/cjs/config/form-builder-config.service.js +79 -0
  2. package/cjs/config/form-builder.constants.js +22 -0
  3. package/cjs/config/index.js +19 -0
  4. package/cjs/controllers/form-result.controller.js +131 -0
  5. package/cjs/controllers/form.controller.js +177 -0
  6. package/cjs/controllers/index.js +19 -0
  7. package/cjs/dtos/form-result.dto.js +309 -0
  8. package/cjs/dtos/form.dto.js +396 -0
  9. package/cjs/dtos/index.js +19 -0
  10. package/cjs/entities/form-base.entity.js +113 -0
  11. package/cjs/entities/form-result.entity.js +106 -0
  12. package/cjs/entities/form-with-company.entity.js +55 -0
  13. package/cjs/entities/form.entity.js +25 -0
  14. package/cjs/entities/index.js +40 -0
  15. package/cjs/enums/form-access-type.enum.js +19 -0
  16. package/cjs/enums/index.js +18 -0
  17. package/cjs/index.js +26 -0
  18. package/cjs/interfaces/form-builder-module.interface.js +4 -0
  19. package/cjs/interfaces/form-result.interface.js +9 -0
  20. package/cjs/interfaces/form.interface.js +4 -0
  21. package/cjs/interfaces/index.js +20 -0
  22. package/cjs/modules/form-builder.module.js +162 -0
  23. package/cjs/modules/index.js +18 -0
  24. package/cjs/services/form-builder-datasource.provider.js +213 -0
  25. package/cjs/services/form-result.service.js +252 -0
  26. package/cjs/services/form.service.js +335 -0
  27. package/cjs/services/index.js +20 -0
  28. package/config/form-builder-config.service.d.ts +10 -0
  29. package/config/form-builder.constants.d.ts +2 -0
  30. package/config/index.d.ts +2 -0
  31. package/controllers/form-result.controller.d.ts +24 -0
  32. package/controllers/form.controller.d.ts +23 -0
  33. package/controllers/index.d.ts +2 -0
  34. package/dtos/form-result.dto.d.ts +48 -0
  35. package/dtos/form.dto.d.ts +63 -0
  36. package/dtos/index.d.ts +2 -0
  37. package/entities/form-base.entity.d.ts +13 -0
  38. package/entities/form-result.entity.d.ts +11 -0
  39. package/entities/form-with-company.entity.d.ts +4 -0
  40. package/entities/form.entity.d.ts +3 -0
  41. package/entities/index.d.ts +5 -0
  42. package/enums/form-access-type.enum.d.ts +5 -0
  43. package/enums/index.d.ts +1 -0
  44. package/fesm/config/form-builder-config.service.js +69 -0
  45. package/fesm/config/form-builder.constants.js +6 -0
  46. package/fesm/config/index.js +2 -0
  47. package/fesm/controllers/form-result.controller.js +121 -0
  48. package/fesm/controllers/form.controller.js +167 -0
  49. package/fesm/controllers/index.js +2 -0
  50. package/fesm/dtos/form-result.dto.js +281 -0
  51. package/fesm/dtos/form.dto.js +370 -0
  52. package/fesm/dtos/index.js +2 -0
  53. package/fesm/entities/form-base.entity.js +106 -0
  54. package/fesm/entities/form-result.entity.js +96 -0
  55. package/fesm/entities/form-with-company.entity.js +45 -0
  56. package/fesm/entities/form.entity.js +15 -0
  57. package/fesm/entities/index.js +29 -0
  58. package/fesm/enums/form-access-type.enum.js +9 -0
  59. package/fesm/enums/index.js +1 -0
  60. package/fesm/index.js +16 -0
  61. package/fesm/interfaces/form-builder-module.interface.js +3 -0
  62. package/fesm/interfaces/form-result.interface.js +6 -0
  63. package/fesm/interfaces/form.interface.js +3 -0
  64. package/fesm/interfaces/index.js +3 -0
  65. package/fesm/modules/form-builder.module.js +152 -0
  66. package/fesm/modules/index.js +1 -0
  67. package/fesm/services/form-builder-datasource.provider.js +162 -0
  68. package/fesm/services/form-result.service.js +242 -0
  69. package/fesm/services/form.service.js +325 -0
  70. package/fesm/services/index.js +3 -0
  71. package/index.d.ts +8 -0
  72. package/interfaces/form-builder-module.interface.d.ts +23 -0
  73. package/interfaces/form-result.interface.d.ts +18 -0
  74. package/interfaces/form.interface.d.ts +29 -0
  75. package/interfaces/index.d.ts +3 -0
  76. package/modules/form-builder.module.d.ts +9 -0
  77. package/modules/index.d.ts +1 -0
  78. package/package.json +84 -0
  79. package/services/form-builder-datasource.provider.d.ts +25 -0
  80. package/services/form-result.service.d.ts +41 -0
  81. package/services/form.service.d.ts +45 -0
  82. package/services/index.d.ts +3 -0
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get CreateFormResultDto () {
13
+ return CreateFormResultDto;
14
+ },
15
+ get FormResultQueryDto () {
16
+ return FormResultQueryDto;
17
+ },
18
+ get FormResultResponseDto () {
19
+ return FormResultResponseDto;
20
+ },
21
+ get GetResultsByFormDto () {
22
+ return GetResultsByFormDto;
23
+ },
24
+ get SubmitFormDto () {
25
+ return SubmitFormDto;
26
+ },
27
+ get UpdateFormResultDto () {
28
+ return UpdateFormResultDto;
29
+ }
30
+ });
31
+ const _swagger = require("@nestjs/swagger");
32
+ const _classvalidator = require("class-validator");
33
+ function _define_property(obj, key, value) {
34
+ if (key in obj) {
35
+ Object.defineProperty(obj, key, {
36
+ value: value,
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true
40
+ });
41
+ } else {
42
+ obj[key] = value;
43
+ }
44
+ return obj;
45
+ }
46
+ function _ts_decorate(decorators, target, key, desc) {
47
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
51
+ }
52
+ function _ts_metadata(k, v) {
53
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
54
+ }
55
+ let SubmitFormDto = class SubmitFormDto {
56
+ constructor(){
57
+ _define_property(this, "formId", void 0);
58
+ _define_property(this, "data", void 0);
59
+ _define_property(this, "isDraft", void 0);
60
+ _define_property(this, "metadata", void 0);
61
+ }
62
+ };
63
+ _ts_decorate([
64
+ (0, _swagger.ApiProperty)({
65
+ description: 'Form ID to submit',
66
+ example: '123e4567-e89b-12d3-a456-426614174000'
67
+ }),
68
+ (0, _classvalidator.IsUUID)(),
69
+ (0, _classvalidator.IsNotEmpty)(),
70
+ _ts_metadata("design:type", String)
71
+ ], SubmitFormDto.prototype, "formId", void 0);
72
+ _ts_decorate([
73
+ (0, _swagger.ApiProperty)({
74
+ description: 'Submitted form data (field values)',
75
+ example: {
76
+ field1: 'value1',
77
+ field2: 123
78
+ }
79
+ }),
80
+ (0, _classvalidator.IsObject)(),
81
+ (0, _classvalidator.IsNotEmpty)(),
82
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
83
+ ], SubmitFormDto.prototype, "data", void 0);
84
+ _ts_decorate([
85
+ (0, _swagger.ApiProperty)({
86
+ description: 'Save as draft instead of final submission',
87
+ default: false,
88
+ required: false
89
+ }),
90
+ (0, _classvalidator.IsBoolean)(),
91
+ (0, _classvalidator.IsOptional)(),
92
+ _ts_metadata("design:type", Boolean)
93
+ ], SubmitFormDto.prototype, "isDraft", void 0);
94
+ _ts_decorate([
95
+ (0, _swagger.ApiProperty)({
96
+ description: 'Additional metadata',
97
+ required: false
98
+ }),
99
+ (0, _classvalidator.IsOptional)(),
100
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
101
+ ], SubmitFormDto.prototype, "metadata", void 0);
102
+ let CreateFormResultDto = class CreateFormResultDto extends SubmitFormDto {
103
+ constructor(...args){
104
+ super(...args), // Internal DTO that extends SubmitFormDto
105
+ // Used by service layer with additional fields
106
+ _define_property(this, "schemaVersionSnapshot", void 0), _define_property(this, "schemaVersion", void 0), _define_property(this, "submittedById", void 0);
107
+ }
108
+ };
109
+ _ts_decorate([
110
+ (0, _swagger.ApiProperty)({
111
+ description: 'Schema snapshot at submission time',
112
+ required: false
113
+ }),
114
+ (0, _classvalidator.IsObject)(),
115
+ (0, _classvalidator.IsOptional)(),
116
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
117
+ ], CreateFormResultDto.prototype, "schemaVersionSnapshot", void 0);
118
+ _ts_decorate([
119
+ (0, _swagger.ApiProperty)({
120
+ description: 'Schema version at submission time',
121
+ required: false
122
+ }),
123
+ (0, _classvalidator.IsOptional)(),
124
+ _ts_metadata("design:type", Number)
125
+ ], CreateFormResultDto.prototype, "schemaVersion", void 0);
126
+ _ts_decorate([
127
+ (0, _swagger.ApiProperty)({
128
+ description: 'User who submitted (null for public)',
129
+ required: false
130
+ }),
131
+ (0, _classvalidator.IsUUID)(),
132
+ (0, _classvalidator.IsOptional)(),
133
+ _ts_metadata("design:type", Object)
134
+ ], CreateFormResultDto.prototype, "submittedById", void 0);
135
+ let UpdateFormResultDto = class UpdateFormResultDto extends (0, _swagger.PartialType)(CreateFormResultDto) {
136
+ constructor(...args){
137
+ super(...args), _define_property(this, "id", void 0);
138
+ }
139
+ };
140
+ _ts_decorate([
141
+ (0, _swagger.ApiProperty)({
142
+ description: 'Form Result ID',
143
+ example: '123e4567-e89b-12d3-a456-426614174000'
144
+ }),
145
+ (0, _classvalidator.IsUUID)(),
146
+ (0, _classvalidator.IsNotEmpty)(),
147
+ _ts_metadata("design:type", String)
148
+ ], UpdateFormResultDto.prototype, "id", void 0);
149
+ let FormResultQueryDto = class FormResultQueryDto {
150
+ constructor(){
151
+ _define_property(this, "formId", void 0);
152
+ _define_property(this, "isDraft", void 0);
153
+ _define_property(this, "submittedById", void 0);
154
+ }
155
+ };
156
+ _ts_decorate([
157
+ (0, _swagger.ApiProperty)({
158
+ description: 'Filter by form ID',
159
+ required: false
160
+ }),
161
+ (0, _classvalidator.IsUUID)(),
162
+ (0, _classvalidator.IsOptional)(),
163
+ _ts_metadata("design:type", String)
164
+ ], FormResultQueryDto.prototype, "formId", void 0);
165
+ _ts_decorate([
166
+ (0, _swagger.ApiProperty)({
167
+ description: 'Filter by draft status',
168
+ required: false
169
+ }),
170
+ (0, _classvalidator.IsBoolean)(),
171
+ (0, _classvalidator.IsOptional)(),
172
+ _ts_metadata("design:type", Boolean)
173
+ ], FormResultQueryDto.prototype, "isDraft", void 0);
174
+ _ts_decorate([
175
+ (0, _swagger.ApiProperty)({
176
+ description: 'Filter by submitted user ID',
177
+ required: false
178
+ }),
179
+ (0, _classvalidator.IsUUID)(),
180
+ (0, _classvalidator.IsOptional)(),
181
+ _ts_metadata("design:type", String)
182
+ ], FormResultQueryDto.prototype, "submittedById", void 0);
183
+ let GetResultsByFormDto = class GetResultsByFormDto {
184
+ constructor(){
185
+ _define_property(this, "formId", void 0);
186
+ _define_property(this, "page", void 0);
187
+ _define_property(this, "pageSize", void 0);
188
+ }
189
+ };
190
+ _ts_decorate([
191
+ (0, _swagger.ApiProperty)({
192
+ description: 'Form ID to filter results',
193
+ example: '123e4567-e89b-12d3-a456-426614174000'
194
+ }),
195
+ (0, _classvalidator.IsUUID)(),
196
+ (0, _classvalidator.IsNotEmpty)(),
197
+ _ts_metadata("design:type", String)
198
+ ], GetResultsByFormDto.prototype, "formId", void 0);
199
+ _ts_decorate([
200
+ (0, _swagger.ApiProperty)({
201
+ description: 'Page number (0-based)',
202
+ default: 0,
203
+ required: false
204
+ }),
205
+ (0, _classvalidator.IsInt)(),
206
+ (0, _classvalidator.Min)(0),
207
+ (0, _classvalidator.IsOptional)(),
208
+ _ts_metadata("design:type", Number)
209
+ ], GetResultsByFormDto.prototype, "page", void 0);
210
+ _ts_decorate([
211
+ (0, _swagger.ApiProperty)({
212
+ description: 'Page size',
213
+ default: 10,
214
+ required: false
215
+ }),
216
+ (0, _classvalidator.IsInt)(),
217
+ (0, _classvalidator.Min)(1),
218
+ (0, _classvalidator.IsOptional)(),
219
+ _ts_metadata("design:type", Number)
220
+ ], GetResultsByFormDto.prototype, "pageSize", void 0);
221
+ let FormResultResponseDto = class FormResultResponseDto {
222
+ constructor(){
223
+ _define_property(this, "id", void 0);
224
+ _define_property(this, "formId", void 0);
225
+ _define_property(this, "schemaVersionSnapshot", void 0);
226
+ _define_property(this, "schemaVersion", void 0);
227
+ _define_property(this, "data", void 0);
228
+ _define_property(this, "submittedById", void 0);
229
+ _define_property(this, "submittedAt", void 0);
230
+ _define_property(this, "isDraft", void 0);
231
+ _define_property(this, "metadata", void 0);
232
+ _define_property(this, "createdAt", void 0);
233
+ _define_property(this, "updatedAt", void 0);
234
+ _define_property(this, "deletedAt", void 0);
235
+ _define_property(this, "createdById", void 0);
236
+ _define_property(this, "updatedById", void 0);
237
+ _define_property(this, "deletedById", void 0);
238
+ }
239
+ };
240
+ _ts_decorate([
241
+ (0, _swagger.ApiProperty)(),
242
+ _ts_metadata("design:type", String)
243
+ ], FormResultResponseDto.prototype, "id", void 0);
244
+ _ts_decorate([
245
+ (0, _swagger.ApiProperty)(),
246
+ _ts_metadata("design:type", String)
247
+ ], FormResultResponseDto.prototype, "formId", void 0);
248
+ _ts_decorate([
249
+ (0, _swagger.ApiProperty)(),
250
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
251
+ ], FormResultResponseDto.prototype, "schemaVersionSnapshot", void 0);
252
+ _ts_decorate([
253
+ (0, _swagger.ApiProperty)(),
254
+ _ts_metadata("design:type", Number)
255
+ ], FormResultResponseDto.prototype, "schemaVersion", void 0);
256
+ _ts_decorate([
257
+ (0, _swagger.ApiProperty)(),
258
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
259
+ ], FormResultResponseDto.prototype, "data", void 0);
260
+ _ts_decorate([
261
+ (0, _swagger.ApiProperty)(),
262
+ _ts_metadata("design:type", Object)
263
+ ], FormResultResponseDto.prototype, "submittedById", void 0);
264
+ _ts_decorate([
265
+ (0, _swagger.ApiProperty)(),
266
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
267
+ ], FormResultResponseDto.prototype, "submittedAt", void 0);
268
+ _ts_decorate([
269
+ (0, _swagger.ApiProperty)(),
270
+ _ts_metadata("design:type", Boolean)
271
+ ], FormResultResponseDto.prototype, "isDraft", void 0);
272
+ _ts_decorate([
273
+ (0, _swagger.ApiProperty)({
274
+ required: false
275
+ }),
276
+ _ts_metadata("design:type", Object)
277
+ ], FormResultResponseDto.prototype, "metadata", void 0);
278
+ _ts_decorate([
279
+ (0, _swagger.ApiProperty)(),
280
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
281
+ ], FormResultResponseDto.prototype, "createdAt", void 0);
282
+ _ts_decorate([
283
+ (0, _swagger.ApiProperty)(),
284
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
285
+ ], FormResultResponseDto.prototype, "updatedAt", void 0);
286
+ _ts_decorate([
287
+ (0, _swagger.ApiProperty)({
288
+ required: false
289
+ }),
290
+ _ts_metadata("design:type", Object)
291
+ ], FormResultResponseDto.prototype, "deletedAt", void 0);
292
+ _ts_decorate([
293
+ (0, _swagger.ApiProperty)({
294
+ required: false
295
+ }),
296
+ _ts_metadata("design:type", Object)
297
+ ], FormResultResponseDto.prototype, "createdById", void 0);
298
+ _ts_decorate([
299
+ (0, _swagger.ApiProperty)({
300
+ required: false
301
+ }),
302
+ _ts_metadata("design:type", Object)
303
+ ], FormResultResponseDto.prototype, "updatedById", void 0);
304
+ _ts_decorate([
305
+ (0, _swagger.ApiProperty)({
306
+ required: false
307
+ }),
308
+ _ts_metadata("design:type", Object)
309
+ ], FormResultResponseDto.prototype, "deletedById", void 0);
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get CreateFormDto () {
13
+ return CreateFormDto;
14
+ },
15
+ get FormAccessInfoResponseDto () {
16
+ return FormAccessInfoResponseDto;
17
+ },
18
+ get FormQueryDto () {
19
+ return FormQueryDto;
20
+ },
21
+ get FormResponseDto () {
22
+ return FormResponseDto;
23
+ },
24
+ get PublicFormResponseDto () {
25
+ return PublicFormResponseDto;
26
+ },
27
+ get UpdateFormDto () {
28
+ return UpdateFormDto;
29
+ }
30
+ });
31
+ const _swagger = require("@nestjs/swagger");
32
+ const _classvalidator = require("class-validator");
33
+ const _formaccesstypeenum = require("../enums/form-access-type.enum");
34
+ function _define_property(obj, key, value) {
35
+ if (key in obj) {
36
+ Object.defineProperty(obj, key, {
37
+ value: value,
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true
41
+ });
42
+ } else {
43
+ obj[key] = value;
44
+ }
45
+ return obj;
46
+ }
47
+ function _ts_decorate(decorators, target, key, desc) {
48
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
51
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
52
+ }
53
+ function _ts_metadata(k, v) {
54
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
55
+ }
56
+ let CreateFormDto = class CreateFormDto {
57
+ constructor(){
58
+ _define_property(this, "name", void 0);
59
+ _define_property(this, "description", void 0);
60
+ _define_property(this, "slug", void 0);
61
+ _define_property(this, "schema", void 0);
62
+ _define_property(this, "accessType", void 0);
63
+ _define_property(this, "actionGroups", void 0);
64
+ _define_property(this, "companyId", void 0);
65
+ _define_property(this, "isActive", void 0);
66
+ _define_property(this, "metadata", void 0);
67
+ }
68
+ };
69
+ _ts_decorate([
70
+ (0, _swagger.ApiProperty)({
71
+ description: 'Form name',
72
+ example: 'Customer Feedback Survey'
73
+ }),
74
+ (0, _classvalidator.IsString)(),
75
+ (0, _classvalidator.IsNotEmpty)(),
76
+ (0, _classvalidator.MaxLength)(255),
77
+ _ts_metadata("design:type", String)
78
+ ], CreateFormDto.prototype, "name", void 0);
79
+ _ts_decorate([
80
+ (0, _swagger.ApiProperty)({
81
+ description: 'Form description',
82
+ example: 'A survey to collect customer feedback',
83
+ required: false
84
+ }),
85
+ (0, _classvalidator.IsString)(),
86
+ (0, _classvalidator.IsOptional)(),
87
+ (0, _classvalidator.MaxLength)(500),
88
+ _ts_metadata("design:type", String)
89
+ ], CreateFormDto.prototype, "description", void 0);
90
+ _ts_decorate([
91
+ (0, _swagger.ApiProperty)({
92
+ description: 'URL-friendly slug for public links',
93
+ example: 'customer-feedback',
94
+ required: false
95
+ }),
96
+ (0, _classvalidator.IsString)(),
97
+ (0, _classvalidator.IsOptional)(),
98
+ (0, _classvalidator.MaxLength)(255),
99
+ _ts_metadata("design:type", String)
100
+ ], CreateFormDto.prototype, "slug", void 0);
101
+ _ts_decorate([
102
+ (0, _swagger.ApiProperty)({
103
+ description: 'Form schema (JSON structure)',
104
+ example: {
105
+ sections: [],
106
+ settings: {}
107
+ }
108
+ }),
109
+ (0, _classvalidator.IsObject)(),
110
+ (0, _classvalidator.IsNotEmpty)(),
111
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
112
+ ], CreateFormDto.prototype, "schema", void 0);
113
+ _ts_decorate([
114
+ (0, _swagger.ApiProperty)({
115
+ description: 'Access type for the form',
116
+ enum: _formaccesstypeenum.FormAccessType,
117
+ default: _formaccesstypeenum.FormAccessType.AUTHENTICATED,
118
+ required: false
119
+ }),
120
+ (0, _classvalidator.IsEnum)(_formaccesstypeenum.FormAccessType),
121
+ (0, _classvalidator.IsOptional)(),
122
+ _ts_metadata("design:type", typeof _formaccesstypeenum.FormAccessType === "undefined" ? Object : _formaccesstypeenum.FormAccessType)
123
+ ], CreateFormDto.prototype, "accessType", void 0);
124
+ _ts_decorate([
125
+ (0, _swagger.ApiProperty)({
126
+ description: 'Action groups for permission-based access (only used when accessType is action_group)',
127
+ example: [
128
+ 'hr.survey.submit',
129
+ 'employee.feedback.submit'
130
+ ],
131
+ required: false
132
+ }),
133
+ (0, _classvalidator.IsArray)(),
134
+ (0, _classvalidator.IsString)({
135
+ each: true
136
+ }),
137
+ (0, _classvalidator.IsOptional)(),
138
+ _ts_metadata("design:type", Array)
139
+ ], CreateFormDto.prototype, "actionGroups", void 0);
140
+ _ts_decorate([
141
+ (0, _swagger.ApiProperty)({
142
+ description: 'Company ID - Only available when company feature is enabled',
143
+ example: '123e4567-e89b-12d3-a456-426614174000',
144
+ required: false
145
+ }),
146
+ (0, _classvalidator.IsUUID)(),
147
+ (0, _classvalidator.IsOptional)(),
148
+ _ts_metadata("design:type", String)
149
+ ], CreateFormDto.prototype, "companyId", void 0);
150
+ _ts_decorate([
151
+ (0, _swagger.ApiProperty)({
152
+ description: 'Active status',
153
+ default: true,
154
+ required: false
155
+ }),
156
+ (0, _classvalidator.IsBoolean)(),
157
+ (0, _classvalidator.IsOptional)(),
158
+ _ts_metadata("design:type", Boolean)
159
+ ], CreateFormDto.prototype, "isActive", void 0);
160
+ _ts_decorate([
161
+ (0, _swagger.ApiProperty)({
162
+ description: 'Additional metadata',
163
+ required: false
164
+ }),
165
+ (0, _classvalidator.IsOptional)(),
166
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
167
+ ], CreateFormDto.prototype, "metadata", void 0);
168
+ let UpdateFormDto = class UpdateFormDto extends (0, _swagger.PartialType)(CreateFormDto) {
169
+ constructor(...args){
170
+ super(...args), _define_property(this, "id", void 0), // Schema version is auto-managed, but allow explicit set for migration purposes
171
+ _define_property(this, "schemaVersion", void 0);
172
+ }
173
+ };
174
+ _ts_decorate([
175
+ (0, _swagger.ApiProperty)({
176
+ description: 'Form ID',
177
+ example: '123e4567-e89b-12d3-a456-426614174000'
178
+ }),
179
+ (0, _classvalidator.IsUUID)(),
180
+ (0, _classvalidator.IsNotEmpty)(),
181
+ _ts_metadata("design:type", String)
182
+ ], UpdateFormDto.prototype, "id", void 0);
183
+ _ts_decorate([
184
+ (0, _swagger.ApiProperty)({
185
+ description: 'Schema version (auto-incremented when schema changes)',
186
+ required: false
187
+ }),
188
+ (0, _classvalidator.IsOptional)(),
189
+ _ts_metadata("design:type", Number)
190
+ ], UpdateFormDto.prototype, "schemaVersion", void 0);
191
+ let FormQueryDto = class FormQueryDto {
192
+ constructor(){
193
+ _define_property(this, "companyId", void 0);
194
+ _define_property(this, "isActive", void 0);
195
+ _define_property(this, "accessType", void 0);
196
+ }
197
+ };
198
+ _ts_decorate([
199
+ (0, _swagger.ApiProperty)({
200
+ description: 'Filter by company ID - Only available when company feature is enabled',
201
+ required: false
202
+ }),
203
+ (0, _classvalidator.IsUUID)(),
204
+ (0, _classvalidator.IsOptional)(),
205
+ _ts_metadata("design:type", String)
206
+ ], FormQueryDto.prototype, "companyId", void 0);
207
+ _ts_decorate([
208
+ (0, _swagger.ApiProperty)({
209
+ description: 'Filter by active status',
210
+ required: false
211
+ }),
212
+ (0, _classvalidator.IsBoolean)(),
213
+ (0, _classvalidator.IsOptional)(),
214
+ _ts_metadata("design:type", Boolean)
215
+ ], FormQueryDto.prototype, "isActive", void 0);
216
+ _ts_decorate([
217
+ (0, _swagger.ApiProperty)({
218
+ description: 'Filter by access type',
219
+ enum: _formaccesstypeenum.FormAccessType,
220
+ required: false
221
+ }),
222
+ (0, _classvalidator.IsEnum)(_formaccesstypeenum.FormAccessType),
223
+ (0, _classvalidator.IsOptional)(),
224
+ _ts_metadata("design:type", typeof _formaccesstypeenum.FormAccessType === "undefined" ? Object : _formaccesstypeenum.FormAccessType)
225
+ ], FormQueryDto.prototype, "accessType", void 0);
226
+ let FormResponseDto = class FormResponseDto {
227
+ constructor(){
228
+ _define_property(this, "id", void 0);
229
+ _define_property(this, "name", void 0);
230
+ _define_property(this, "description", void 0);
231
+ _define_property(this, "slug", void 0);
232
+ _define_property(this, "schema", void 0);
233
+ _define_property(this, "schemaVersion", void 0);
234
+ _define_property(this, "accessType", void 0);
235
+ _define_property(this, "actionGroups", void 0);
236
+ _define_property(this, "companyId", void 0);
237
+ _define_property(this, "isActive", void 0);
238
+ _define_property(this, "metadata", void 0);
239
+ _define_property(this, "createdAt", void 0);
240
+ _define_property(this, "updatedAt", void 0);
241
+ _define_property(this, "deletedAt", void 0);
242
+ _define_property(this, "createdById", void 0);
243
+ _define_property(this, "updatedById", void 0);
244
+ _define_property(this, "deletedById", void 0);
245
+ }
246
+ };
247
+ _ts_decorate([
248
+ (0, _swagger.ApiProperty)(),
249
+ _ts_metadata("design:type", String)
250
+ ], FormResponseDto.prototype, "id", void 0);
251
+ _ts_decorate([
252
+ (0, _swagger.ApiProperty)(),
253
+ _ts_metadata("design:type", String)
254
+ ], FormResponseDto.prototype, "name", void 0);
255
+ _ts_decorate([
256
+ (0, _swagger.ApiProperty)(),
257
+ _ts_metadata("design:type", Object)
258
+ ], FormResponseDto.prototype, "description", void 0);
259
+ _ts_decorate([
260
+ (0, _swagger.ApiProperty)(),
261
+ _ts_metadata("design:type", Object)
262
+ ], FormResponseDto.prototype, "slug", void 0);
263
+ _ts_decorate([
264
+ (0, _swagger.ApiProperty)(),
265
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
266
+ ], FormResponseDto.prototype, "schema", void 0);
267
+ _ts_decorate([
268
+ (0, _swagger.ApiProperty)(),
269
+ _ts_metadata("design:type", Number)
270
+ ], FormResponseDto.prototype, "schemaVersion", void 0);
271
+ _ts_decorate([
272
+ (0, _swagger.ApiProperty)({
273
+ enum: _formaccesstypeenum.FormAccessType
274
+ }),
275
+ _ts_metadata("design:type", typeof _formaccesstypeenum.FormAccessType === "undefined" ? Object : _formaccesstypeenum.FormAccessType)
276
+ ], FormResponseDto.prototype, "accessType", void 0);
277
+ _ts_decorate([
278
+ (0, _swagger.ApiProperty)(),
279
+ _ts_metadata("design:type", Object)
280
+ ], FormResponseDto.prototype, "actionGroups", void 0);
281
+ _ts_decorate([
282
+ (0, _swagger.ApiProperty)(),
283
+ _ts_metadata("design:type", Object)
284
+ ], FormResponseDto.prototype, "companyId", void 0);
285
+ _ts_decorate([
286
+ (0, _swagger.ApiProperty)(),
287
+ _ts_metadata("design:type", Boolean)
288
+ ], FormResponseDto.prototype, "isActive", void 0);
289
+ _ts_decorate([
290
+ (0, _swagger.ApiProperty)({
291
+ required: false
292
+ }),
293
+ _ts_metadata("design:type", Object)
294
+ ], FormResponseDto.prototype, "metadata", void 0);
295
+ _ts_decorate([
296
+ (0, _swagger.ApiProperty)(),
297
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
298
+ ], FormResponseDto.prototype, "createdAt", void 0);
299
+ _ts_decorate([
300
+ (0, _swagger.ApiProperty)(),
301
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
302
+ ], FormResponseDto.prototype, "updatedAt", void 0);
303
+ _ts_decorate([
304
+ (0, _swagger.ApiProperty)({
305
+ required: false
306
+ }),
307
+ _ts_metadata("design:type", Object)
308
+ ], FormResponseDto.prototype, "deletedAt", void 0);
309
+ _ts_decorate([
310
+ (0, _swagger.ApiProperty)({
311
+ required: false
312
+ }),
313
+ _ts_metadata("design:type", Object)
314
+ ], FormResponseDto.prototype, "createdById", void 0);
315
+ _ts_decorate([
316
+ (0, _swagger.ApiProperty)({
317
+ required: false
318
+ }),
319
+ _ts_metadata("design:type", Object)
320
+ ], FormResponseDto.prototype, "updatedById", void 0);
321
+ _ts_decorate([
322
+ (0, _swagger.ApiProperty)({
323
+ required: false
324
+ }),
325
+ _ts_metadata("design:type", Object)
326
+ ], FormResponseDto.prototype, "deletedById", void 0);
327
+ let PublicFormResponseDto = class PublicFormResponseDto {
328
+ constructor(){
329
+ _define_property(this, "id", void 0);
330
+ _define_property(this, "name", void 0);
331
+ _define_property(this, "description", void 0);
332
+ _define_property(this, "schema", void 0);
333
+ _define_property(this, "schemaVersion", void 0);
334
+ }
335
+ };
336
+ _ts_decorate([
337
+ (0, _swagger.ApiProperty)(),
338
+ _ts_metadata("design:type", String)
339
+ ], PublicFormResponseDto.prototype, "id", void 0);
340
+ _ts_decorate([
341
+ (0, _swagger.ApiProperty)(),
342
+ _ts_metadata("design:type", String)
343
+ ], PublicFormResponseDto.prototype, "name", void 0);
344
+ _ts_decorate([
345
+ (0, _swagger.ApiProperty)(),
346
+ _ts_metadata("design:type", Object)
347
+ ], PublicFormResponseDto.prototype, "description", void 0);
348
+ _ts_decorate([
349
+ (0, _swagger.ApiProperty)(),
350
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
351
+ ], PublicFormResponseDto.prototype, "schema", void 0);
352
+ _ts_decorate([
353
+ (0, _swagger.ApiProperty)(),
354
+ _ts_metadata("design:type", Number)
355
+ ], PublicFormResponseDto.prototype, "schemaVersion", void 0);
356
+ let FormAccessInfoResponseDto = class FormAccessInfoResponseDto {
357
+ constructor(){
358
+ _define_property(this, "id", void 0);
359
+ _define_property(this, "name", void 0);
360
+ _define_property(this, "description", void 0);
361
+ _define_property(this, "accessType", void 0);
362
+ _define_property(this, "actionGroups", void 0);
363
+ _define_property(this, "isActive", void 0);
364
+ }
365
+ };
366
+ _ts_decorate([
367
+ (0, _swagger.ApiProperty)(),
368
+ _ts_metadata("design:type", String)
369
+ ], FormAccessInfoResponseDto.prototype, "id", void 0);
370
+ _ts_decorate([
371
+ (0, _swagger.ApiProperty)(),
372
+ _ts_metadata("design:type", String)
373
+ ], FormAccessInfoResponseDto.prototype, "name", void 0);
374
+ _ts_decorate([
375
+ (0, _swagger.ApiProperty)(),
376
+ _ts_metadata("design:type", Object)
377
+ ], FormAccessInfoResponseDto.prototype, "description", void 0);
378
+ _ts_decorate([
379
+ (0, _swagger.ApiProperty)({
380
+ enum: _formaccesstypeenum.FormAccessType
381
+ }),
382
+ _ts_metadata("design:type", typeof _formaccesstypeenum.FormAccessType === "undefined" ? Object : _formaccesstypeenum.FormAccessType)
383
+ ], FormAccessInfoResponseDto.prototype, "accessType", void 0);
384
+ _ts_decorate([
385
+ (0, _swagger.ApiProperty)({
386
+ type: [
387
+ String
388
+ ],
389
+ required: false
390
+ }),
391
+ _ts_metadata("design:type", Object)
392
+ ], FormAccessInfoResponseDto.prototype, "actionGroups", void 0);
393
+ _ts_decorate([
394
+ (0, _swagger.ApiProperty)(),
395
+ _ts_metadata("design:type", Boolean)
396
+ ], FormAccessInfoResponseDto.prototype, "isActive", void 0);