@flusys/nestjs-event-manager 7.1.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/adapters/event-manager.adapter.d.ts +2 -2
  2. package/adapters/index.d.ts +1 -1
  3. package/config/index.d.ts +3 -3
  4. package/controllers/event.controller.d.ts +3 -3
  5. package/controllers/index.d.ts +1 -1
  6. package/docs/event-manager-swagger.config.d.ts +2 -2
  7. package/docs/index.d.ts +1 -1
  8. package/dtos/calendar-query.dto.d.ts +1 -1
  9. package/dtos/event.dto.d.ts +1 -1
  10. package/dtos/index.d.ts +3 -3
  11. package/entities/event-with-company.entity.d.ts +1 -1
  12. package/entities/index.d.ts +8 -8
  13. package/fesm/477.js +1798 -0
  14. package/fesm/833.js +840 -0
  15. package/fesm/adapters/index.js +884 -1
  16. package/fesm/config/index.js +87 -3
  17. package/fesm/controllers/index.js +365 -1
  18. package/fesm/docs/index.js +155 -2
  19. package/fesm/dtos/index.js +720 -3
  20. package/fesm/entities/index.js +350 -11
  21. package/fesm/index.js +121 -9
  22. package/fesm/interfaces/index.js +16 -2
  23. package/fesm/modules/index.js +13 -1
  24. package/fesm/runtime.js +85 -0
  25. package/fesm/services/index.js +272 -4
  26. package/index.d.ts +9 -9
  27. package/interfaces/event-manager-module.interface.d.ts +3 -3
  28. package/interfaces/event.interface.d.ts +1 -1
  29. package/interfaces/index.d.ts +2 -2
  30. package/modules/event-manager.module.d.ts +2 -2
  31. package/modules/index.d.ts +1 -1
  32. package/package.json +29 -39
  33. package/services/event-manager-config.service.d.ts +3 -3
  34. package/services/event-manager-datasource.provider.d.ts +3 -3
  35. package/services/event-manager-helper.service.d.ts +3 -3
  36. package/services/event.service.d.ts +7 -7
  37. package/services/index.d.ts +4 -4
  38. package/cjs/adapters/event-manager.adapter.js +0 -65
  39. package/cjs/adapters/event-manager.adapter.spec.js +0 -104
  40. package/cjs/adapters/index.js +0 -18
  41. package/cjs/config/event-actions.js +0 -31
  42. package/cjs/config/event-manager.constants.js +0 -13
  43. package/cjs/config/index.js +0 -20
  44. package/cjs/config/message-keys.js +0 -27
  45. package/cjs/controllers/event.controller.js +0 -190
  46. package/cjs/controllers/event.controller.spec.js +0 -156
  47. package/cjs/controllers/index.js +0 -18
  48. package/cjs/docs/event-manager-swagger.config.js +0 -125
  49. package/cjs/docs/event-manager-swagger.config.spec.js +0 -65
  50. package/cjs/docs/index.js +0 -21
  51. package/cjs/dtos/calendar-query.dto.js +0 -212
  52. package/cjs/dtos/event-participant.dto.js +0 -181
  53. package/cjs/dtos/event.dto.js +0 -343
  54. package/cjs/dtos/index.js +0 -20
  55. package/cjs/entities/event-participant.entity.js +0 -89
  56. package/cjs/entities/event-with-company.entity.js +0 -56
  57. package/cjs/entities/event.entity.js +0 -156
  58. package/cjs/entities/index.js +0 -55
  59. package/cjs/entities/index.spec.js +0 -18
  60. package/cjs/index.js +0 -27
  61. package/cjs/interfaces/event-manager-module.interface.js +0 -4
  62. package/cjs/interfaces/event.interface.js +0 -4
  63. package/cjs/interfaces/index.js +0 -19
  64. package/cjs/modules/event-manager.module.js +0 -132
  65. package/cjs/modules/event-manager.module.spec.js +0 -146
  66. package/cjs/modules/index.js +0 -18
  67. package/cjs/services/event-manager-config.service.js +0 -76
  68. package/cjs/services/event-manager-config.service.spec.js +0 -111
  69. package/cjs/services/event-manager-datasource.provider.js +0 -84
  70. package/cjs/services/event-manager-datasource.provider.spec.js +0 -198
  71. package/cjs/services/event-manager-helper.service.js +0 -235
  72. package/cjs/services/event-manager-helper.service.spec.js +0 -327
  73. package/cjs/services/event.service.js +0 -481
  74. package/cjs/services/event.service.spec.js +0 -929
  75. package/cjs/services/index.js +0 -21
  76. package/fesm/adapters/event-manager.adapter.js +0 -55
  77. package/fesm/adapters/event-manager.adapter.spec.js +0 -100
  78. package/fesm/config/event-actions.js +0 -10
  79. package/fesm/config/event-manager.constants.js +0 -3
  80. package/fesm/config/message-keys.js +0 -9
  81. package/fesm/controllers/event.controller.js +0 -180
  82. package/fesm/controllers/event.controller.spec.js +0 -152
  83. package/fesm/docs/event-manager-swagger.config.js +0 -118
  84. package/fesm/docs/event-manager-swagger.config.spec.js +0 -61
  85. package/fesm/dtos/calendar-query.dto.js +0 -194
  86. package/fesm/dtos/event-participant.dto.js +0 -157
  87. package/fesm/dtos/event.dto.js +0 -322
  88. package/fesm/entities/event-participant.entity.js +0 -79
  89. package/fesm/entities/event-with-company.entity.js +0 -46
  90. package/fesm/entities/event.entity.js +0 -146
  91. package/fesm/entities/index.spec.js +0 -14
  92. package/fesm/interfaces/event-manager-module.interface.js +0 -3
  93. package/fesm/interfaces/event.interface.js +0 -1
  94. package/fesm/modules/event-manager.module.js +0 -122
  95. package/fesm/modules/event-manager.module.spec.js +0 -142
  96. package/fesm/services/event-manager-config.service.js +0 -66
  97. package/fesm/services/event-manager-config.service.spec.js +0 -107
  98. package/fesm/services/event-manager-datasource.provider.js +0 -74
  99. package/fesm/services/event-manager-datasource.provider.spec.js +0 -194
  100. package/fesm/services/event-manager-helper.service.js +0 -225
  101. package/fesm/services/event-manager-helper.service.spec.js +0 -323
  102. package/fesm/services/event.service.js +0 -471
  103. package/fesm/services/event.service.spec.js +0 -925
@@ -1,3 +1,87 @@
1
- export * from './event-actions';
2
- export * from './event-manager.constants';
3
- export * from './message-keys';
1
+ export const __rspack_esm_id = 565;
2
+ export const __rspack_esm_ids = [565];
3
+ export const __webpack_modules__ = {
4
+ 782(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /**
6
+ * Domain event actions published by the event manager module, alongside the CRUD
7
+ * lifecycle actions every ApiService emits.
8
+ */ const EVENT_MANAGER_EVENT_ACTIONS = {
9
+ PARTICIPANT_STATUS_CHANGED: 'participant-status-changed'
10
+ };
11
+ /** Every entity the event manager module publishes under */ const EVENT_MANAGER_EVENT_ENTITIES = {
12
+ EVENT: 'event'
13
+ };
14
+ const EVENT_MANAGER_EVENT_MODULE = 'event-manager';
15
+
16
+ __webpack_require__.d(__webpack_exports__, {
17
+ }, {
18
+ i2: EVENT_MANAGER_EVENT_ACTIONS,
19
+ sI: EVENT_MANAGER_EVENT_ENTITIES,
20
+ vR: EVENT_MANAGER_EVENT_MODULE
21
+ });
22
+
23
+
24
+ },
25
+ 890(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
26
+ /**
27
+ * Event Manager Module Constants
28
+ */ const EVENT_MANAGER_MODULE_OPTIONS = 'EVENT_MANAGER_MODULE_OPTIONS';
29
+
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ }, {
32
+ D: EVENT_MANAGER_MODULE_OPTIONS
33
+ });
34
+
35
+
36
+ },
37
+ 895(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
38
+ /* import */ var _event_actions_js__rspack_import_0 = __webpack_require__(782);
39
+ /* import */ var _event_manager_constants_js__rspack_import_1 = __webpack_require__(890);
40
+ /* import */ var _message_keys_js__rspack_import_2 = __webpack_require__(401);
41
+
42
+
43
+
44
+
45
+ __webpack_require__.d(__webpack_exports__, {
46
+ Ch: () => (/* reexport safe */ _message_keys_js__rspack_import_2.C),
47
+ DJ: () => (/* reexport safe */ _event_manager_constants_js__rspack_import_1.D),
48
+ G_: () => (/* reexport safe */ _message_keys_js__rspack_import_2.G),
49
+ i2: () => (/* reexport safe */ _event_actions_js__rspack_import_0.i2),
50
+ sI: () => (/* reexport safe */ _event_actions_js__rspack_import_0.sI),
51
+ vR: () => (/* reexport safe */ _event_actions_js__rspack_import_0.vR)
52
+ });
53
+
54
+
55
+ },
56
+ 401(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
57
+ // ==================== EVENT MANAGER MODULE MESSAGE KEYS ====================
58
+ const EVENT_MESSAGES = {
59
+ GET_ALL_SUCCESS: 'event.get.all.success',
60
+ NOT_FOUND: 'event.not.found'
61
+ };
62
+ const EVENT_PARTICIPANT_MESSAGES = {
63
+ NOT_FOUND: 'event.participant.not.found',
64
+ STATUS_UPDATE_SUCCESS: 'event.participant.status.update.success'
65
+ };
66
+
67
+ __webpack_require__.d(__webpack_exports__, {
68
+ }, {
69
+ C: EVENT_PARTICIPANT_MESSAGES,
70
+ G: EVENT_MESSAGES
71
+ });
72
+
73
+
74
+ },
75
+
76
+ };
77
+ import { __webpack_require__ } from '../runtime.js';
78
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
79
+ import * as __rspack_chunk_1 from './index.js';
80
+ __webpack_require__.C(__rspack_chunk_1);
81
+ var __webpack_exports__ = __webpack_exec__(895);var __webpack_exports__EVENT_MANAGER_EVENT_ACTIONS = __webpack_exports__.i2;
82
+ var __webpack_exports__EVENT_MANAGER_EVENT_ENTITIES = __webpack_exports__.sI;
83
+ var __webpack_exports__EVENT_MANAGER_EVENT_MODULE = __webpack_exports__.vR;
84
+ var __webpack_exports__EVENT_MANAGER_MODULE_OPTIONS = __webpack_exports__.DJ;
85
+ var __webpack_exports__EVENT_MESSAGES = __webpack_exports__.G_;
86
+ var __webpack_exports__EVENT_PARTICIPANT_MESSAGES = __webpack_exports__.Ch;
87
+ export { __webpack_exports__EVENT_MANAGER_EVENT_ACTIONS as EVENT_MANAGER_EVENT_ACTIONS, __webpack_exports__EVENT_MANAGER_EVENT_ENTITIES as EVENT_MANAGER_EVENT_ENTITIES, __webpack_exports__EVENT_MANAGER_EVENT_MODULE as EVENT_MANAGER_EVENT_MODULE, __webpack_exports__EVENT_MANAGER_MODULE_OPTIONS as EVENT_MANAGER_MODULE_OPTIONS, __webpack_exports__EVENT_MESSAGES as EVENT_MESSAGES, __webpack_exports__EVENT_PARTICIPANT_MESSAGES as EVENT_PARTICIPANT_MESSAGES };
@@ -1 +1,365 @@
1
- export * from './event.controller';
1
+ import { ListResponseDto, SingleResponseDto } from "@flusys/nestjs-shared/dtos";
2
+ import { JwtAuthGuard, PermissionGuard } from "@flusys/nestjs-shared/guards";
3
+ export const __rspack_esm_id = 24;
4
+ export const __rspack_esm_ids = [24];
5
+ export const __webpack_modules__ = {
6
+ 558(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7
+
8
+ // EXPORTS
9
+ __webpack_require__.d(__webpack_exports__, {
10
+ d: () => (/* reexport */ EventController)
11
+ });
12
+
13
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/classes"
14
+ var classes_ = __webpack_require__(937);
15
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/decorators"
16
+ var decorators_ = __webpack_require__(265);
17
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/dtos"
18
+
19
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/guards"
20
+
21
+ // EXTERNAL MODULE: external "@nestjs/common"
22
+ var common_ = __webpack_require__(157);
23
+ // EXTERNAL MODULE: external "@nestjs/swagger"
24
+ var swagger_ = __webpack_require__(176);
25
+ // EXTERNAL MODULE: external "class-transformer"
26
+ var external_class_transformer_ = __webpack_require__(812);
27
+ // EXTERNAL MODULE: ./projects/nestjs-event-manager/src/config/message-keys.ts
28
+ var message_keys = __webpack_require__(401);
29
+ // EXTERNAL MODULE: ./projects/nestjs-event-manager/src/docs/index.ts + 1 modules
30
+ var docs = __webpack_require__(283);
31
+ // EXTERNAL MODULE: ./projects/nestjs-event-manager/src/dtos/index.ts + 4 modules
32
+ var dtos = __webpack_require__(178);
33
+ // EXTERNAL MODULE: ./projects/nestjs-event-manager/src/services/event.service.ts + 1 modules
34
+ var event_service = __webpack_require__(332);
35
+ ;// CONCATENATED MODULE: ./projects/nestjs-event-manager/src/controllers/event.controller.ts
36
+ function _ts_decorate(decorators, target, key, desc) {
37
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
39
+ r = Reflect.decorate(decorators, target, key, desc);
40
+ } else {
41
+ for(var i = decorators.length - 1; i >= 0; i--){
42
+ if (d = decorators[i]) {
43
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
44
+ }
45
+ }
46
+ }
47
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
48
+ }
49
+ function _ts_metadata(metadataKey, metadataValue) {
50
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
51
+ return Reflect.metadata(metadataKey, metadataValue);
52
+ }
53
+ }
54
+ function _ts_param(paramIndex, decorator) {
55
+ return function(target, key) {
56
+ decorator(target, key, paramIndex);
57
+ };
58
+ }
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+ class EventController extends (0,classes_.createApiController)(dtos/* .CreateEventDto */.wJ, dtos/* .UpdateEventDto */.XJ, dtos/* .EventResponseDto */.XZ, {
71
+ entityName: 'event',
72
+ security: {
73
+ insert: {
74
+ level: 'permission',
75
+ permissions: [
76
+ docs/* .EVENT_PERMISSIONS.CREATE */.U.CREATE
77
+ ]
78
+ },
79
+ insertMany: {
80
+ level: 'permission',
81
+ permissions: [
82
+ docs/* .EVENT_PERMISSIONS.CREATE */.U.CREATE
83
+ ]
84
+ },
85
+ getById: {
86
+ level: 'permission',
87
+ permissions: [
88
+ docs/* .EVENT_PERMISSIONS.READ */.U.READ
89
+ ]
90
+ },
91
+ getAll: {
92
+ level: 'permission',
93
+ permissions: [
94
+ docs/* .EVENT_PERMISSIONS.READ */.U.READ
95
+ ]
96
+ },
97
+ update: {
98
+ level: 'permission',
99
+ permissions: [
100
+ docs/* .EVENT_PERMISSIONS.UPDATE */.U.UPDATE
101
+ ]
102
+ },
103
+ updateMany: {
104
+ level: 'permission',
105
+ permissions: [
106
+ docs/* .EVENT_PERMISSIONS.UPDATE */.U.UPDATE
107
+ ]
108
+ },
109
+ delete: {
110
+ level: 'permission',
111
+ permissions: [
112
+ docs/* .EVENT_PERMISSIONS.DELETE */.U.DELETE
113
+ ]
114
+ }
115
+ }
116
+ }) {
117
+ eventService;
118
+ constructor(eventService){
119
+ super(eventService), this.eventService = eventService;
120
+ }
121
+ async getCalendarEvents(dto, user) {
122
+ const events = await this.eventService.getEventsForCalendarRange(dto, user);
123
+ const plainOptions = {
124
+ excludeExtraneousValues: true
125
+ };
126
+ const data = (0,external_class_transformer_.plainToInstance)(dtos/* .CalendarEventResponseDto */.hh, events, plainOptions);
127
+ return {
128
+ success: true,
129
+ message: 'Calendar events retrieved successfully',
130
+ messageKey: message_keys/* .EVENT_MESSAGES.GET_ALL_SUCCESS */.G.GET_ALL_SUCCESS,
131
+ data,
132
+ meta: {
133
+ total: data.length,
134
+ page: 0,
135
+ pageSize: data.length,
136
+ count: data.length
137
+ }
138
+ };
139
+ }
140
+ async updateParticipantStatus(dto, user) {
141
+ const participant = await this.eventService.updateParticipantStatus(dto, user);
142
+ const plainOptions = {
143
+ excludeExtraneousValues: true
144
+ };
145
+ return {
146
+ success: true,
147
+ message: 'Participant status updated successfully',
148
+ messageKey: message_keys/* .EVENT_PARTICIPANT_MESSAGES.STATUS_UPDATE_SUCCESS */.C.STATUS_UPDATE_SUCCESS,
149
+ data: (0,external_class_transformer_.plainToInstance)(dtos/* .EventParticipantResponseDto */.KA, participant, plainOptions)
150
+ };
151
+ }
152
+ }
153
+ _ts_decorate([
154
+ (0,common_.Post)('calendar'),
155
+ (0,common_.UseGuards)(JwtAuthGuard),
156
+ (0,swagger_.ApiBearerAuth)(),
157
+ (0,common_.HttpCode)(common_.HttpStatus.OK),
158
+ (0,swagger_.ApiOperation)({
159
+ summary: 'Get events for calendar range with recurrence expansion'
160
+ }),
161
+ (0,swagger_.ApiBody)({
162
+ type: dtos/* .CalendarQueryDto */.it
163
+ }),
164
+ (0,swagger_.ApiResponse)({
165
+ status: 200,
166
+ description: 'Calendar events retrieved successfully',
167
+ type: ListResponseDto
168
+ }),
169
+ _ts_param(0, (0,common_.Body)()),
170
+ _ts_param(1, (0,decorators_.CurrentUser)()),
171
+ _ts_metadata("design:type", Function),
172
+ _ts_metadata("design:paramtypes", [
173
+ typeof dtos/* .CalendarQueryDto */.it === "undefined" ? Object : dtos/* .CalendarQueryDto */.it,
174
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
175
+ ]),
176
+ _ts_metadata("design:returntype", Promise)
177
+ ], EventController.prototype, "getCalendarEvents", null);
178
+ _ts_decorate([
179
+ (0,common_.Post)('update-participant-status'),
180
+ (0,common_.UseGuards)(JwtAuthGuard, PermissionGuard),
181
+ (0,swagger_.ApiBearerAuth)(),
182
+ (0,common_.HttpCode)(common_.HttpStatus.OK),
183
+ (0,decorators_.RequirePermission)(docs/* .EVENT_PERMISSIONS.UPDATE */.U.UPDATE),
184
+ (0,swagger_.ApiOperation)({
185
+ summary: 'Update participant status (accept/decline/tentative)'
186
+ }),
187
+ (0,swagger_.ApiBody)({
188
+ type: dtos/* .UpdateParticipantStatusDto */.Wk
189
+ }),
190
+ (0,swagger_.ApiResponse)({
191
+ status: 200,
192
+ type: SingleResponseDto
193
+ }),
194
+ _ts_param(0, (0,common_.Body)()),
195
+ _ts_param(1, (0,decorators_.CurrentUser)()),
196
+ _ts_metadata("design:type", Function),
197
+ _ts_metadata("design:paramtypes", [
198
+ typeof dtos/* .UpdateParticipantStatusDto */.Wk === "undefined" ? Object : dtos/* .UpdateParticipantStatusDto */.Wk,
199
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
200
+ ]),
201
+ _ts_metadata("design:returntype", Promise)
202
+ ], EventController.prototype, "updateParticipantStatus", null);
203
+ EventController = _ts_decorate([
204
+ (0,swagger_.ApiTags)('Events'),
205
+ (0,common_.Controller)('event-manager/event'),
206
+ _ts_param(0, (0,common_.Inject)(event_service/* .EventService */.U)),
207
+ _ts_metadata("design:type", Function),
208
+ _ts_metadata("design:paramtypes", [
209
+ typeof event_service/* .EventService */.U === "undefined" ? Object : event_service/* .EventService */.U
210
+ ])
211
+ ], EventController);
212
+
213
+ ;// CONCATENATED MODULE: ./projects/nestjs-event-manager/src/controllers/index.ts
214
+
215
+
216
+
217
+ },
218
+ 283(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
219
+
220
+ // EXPORTS
221
+ __webpack_require__.d(__webpack_exports__, {
222
+ U: () => (/* reexport */ nestjs_shared_.EVENT_PERMISSIONS),
223
+ S: () => (/* reexport */ eventManagerSwaggerConfig)
224
+ });
225
+
226
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared"
227
+ var nestjs_shared_ = __webpack_require__(422);
228
+ ;// CONCATENATED MODULE: ./projects/nestjs-event-manager/src/docs/event-manager-swagger.config.ts
229
+ /** Schema properties to exclude when company feature is disabled */ const COMPANY_SCHEMA_EXCLUSIONS = [
230
+ {
231
+ schemaName: 'EventResponseDto',
232
+ properties: [
233
+ 'companyId'
234
+ ]
235
+ },
236
+ {
237
+ schemaName: 'CalendarEventResponseDto',
238
+ properties: [
239
+ 'companyId'
240
+ ]
241
+ }
242
+ ];
243
+ function buildDescription(enableCompanyFeature, isMultiTenant) {
244
+ const multiTenantNote = isMultiTenant ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
245
+ const companyFeatures = enableCompanyFeature ? '\n- **Company-scoped events**' : '';
246
+ const companyIsolation = enableCompanyFeature ? '\n- **Company isolation**' : '';
247
+ const multiTenantSection = enableCompanyFeature ? `
248
+ ## Multi-Tenant Support
249
+
250
+ Events are automatically isolated by:
251
+ - **Company ID**: Events belong to specific companies
252
+ - **User Context**: Participants are company members
253
+
254
+ All queries automatically filter by current user's company context.
255
+ ` : '';
256
+ return `
257
+ # Event Manager API
258
+ ${multiTenantNote}
259
+ Calendar event management with recurrence support${enableCompanyFeature ? ' and multi-tenant capabilities' : ''}.
260
+
261
+ ## Features
262
+
263
+ ### 📅 Event Management
264
+ - Create, read, update, delete events
265
+ - Color-coded events
266
+ - All-day event support${companyFeatures}
267
+
268
+ ### 🔄 Recurrence Support
269
+ - **None**: Single occurrence
270
+ - **Daily**: Every day
271
+ - **Weekly**: Specific days of the week
272
+ - **Biweekly**: Every two weeks
273
+ - **Monthly**: Same day each month
274
+
275
+ ### 👥 Participant Management
276
+ - Status tracking (pending, accepted, declined, tentative)
277
+ - Organizer designation
278
+
279
+ ### 📆 Calendar Queries
280
+ - Date range queries
281
+ - Automatic recurrence expansion
282
+ - Filter by user participation
283
+ - Include/exclude participants in response
284
+
285
+ ### 🔒 Security
286
+ - JWT authentication required
287
+ - Permission-based access control${companyIsolation}
288
+
289
+ ## Recurrence Patterns
290
+
291
+ ### Weekly Recurrence
292
+ Use the \`weekDays\` array to specify which days repeat:
293
+ - \`"SUN"\` = Sunday
294
+ - \`"MON"\` = Monday
295
+ - \`"TUE"\` = Tuesday
296
+ - \`"WED"\` = Wednesday
297
+ - \`"THU"\` = Thursday
298
+ - \`"FRI"\` = Friday
299
+ - \`"SAT"\` = Saturday
300
+
301
+ Example: \`{ "weekDays": ["MON", "WED", "FRI"] }\` = Monday, Wednesday, Friday
302
+
303
+ ### Recurrence Expansion
304
+ Calendar queries automatically expand recurring events into individual instances.
305
+ Each instance includes:
306
+ - \`isRecurrenceInstance: true\`
307
+ - \`originalEventId\`: Reference to parent event
308
+ ${multiTenantSection}
309
+ ## API Endpoints
310
+
311
+ All endpoints use POST method (RPC style):
312
+
313
+ ### Events
314
+ - \`/event-manager/event/insert\` - Create event
315
+ - \`/event-manager/event/get/:id\` - Get by ID
316
+ - \`/event-manager/event/get-all\` - List with pagination
317
+ - \`/event-manager/event/update\` - Update event
318
+ - \`/event-manager/event/delete\` - Soft delete
319
+ - \`/event-manager/event/calendar\` - Calendar query with expansion
320
+
321
+ ### Participant Operations (via Event endpoints)
322
+ - \`/event-manager/event/update-participant-status\` - Update status
323
+
324
+ ## Getting Started
325
+
326
+ 1. **Authenticate**: Obtain JWT token from /auth/login
327
+ 2. **Create Event**: POST to /event-manager/event/insert
328
+ 3. **Query Calendar**: POST to /event-manager/event/calendar with date range
329
+ `;
330
+ }
331
+ /**
332
+ * Event Manager Module Swagger Configuration
333
+ * Use this with setupSwaggerDocs() from @flusys/nestjs-core
334
+ */ function eventManagerSwaggerConfig(bootstrapConfig) {
335
+ const enableCompanyFeature = bootstrapConfig?.enableCompanyFeature ?? true;
336
+ const isMultiTenant = bootstrapConfig?.databaseMode === 'multi-tenant';
337
+ return {
338
+ title: 'Event Manager API',
339
+ description: buildDescription(enableCompanyFeature, isMultiTenant),
340
+ version: '1.0',
341
+ path: 'api/docs/event-manager',
342
+ bearerAuth: true,
343
+ excludeTags: [],
344
+ excludeSchemaProperties: enableCompanyFeature ? undefined : COMPANY_SCHEMA_EXCLUSIONS
345
+ };
346
+ }
347
+
348
+ ;// CONCATENATED MODULE: ./projects/nestjs-event-manager/src/docs/index.ts
349
+ // Re-export permissions from shared for convenience
350
+
351
+ // Swagger configuration
352
+
353
+
354
+
355
+ },
356
+
357
+ };
358
+ import { __webpack_require__ } from '../runtime.js';
359
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
360
+ import * as __rspack_chunk_1 from '../477.js';
361
+ __webpack_require__.C(__rspack_chunk_1);
362
+ import * as __rspack_chunk_2 from './index.js';
363
+ __webpack_require__.C(__rspack_chunk_2);
364
+ var __webpack_exports__ = __webpack_exec__(558);var __webpack_exports__EventController = __webpack_exports__.d;
365
+ export { __webpack_exports__EventController as EventController };
@@ -1,4 +1,157 @@
1
+ import * as __rspack_external__flusys_nestjs_shared_393d2cae from "@flusys/nestjs-shared";
2
+ export const __rspack_esm_id = 428;
3
+ export const __rspack_esm_ids = [428];
4
+ export const __webpack_modules__ = {
5
+ 283(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
6
+
7
+ // EXPORTS
8
+ __webpack_require__.d(__webpack_exports__, {
9
+ U: () => (/* reexport */ nestjs_shared_.EVENT_PERMISSIONS),
10
+ S: () => (/* reexport */ eventManagerSwaggerConfig)
11
+ });
12
+
13
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared"
14
+ var nestjs_shared_ = __webpack_require__(422);
15
+ ;// CONCATENATED MODULE: ./projects/nestjs-event-manager/src/docs/event-manager-swagger.config.ts
16
+ /** Schema properties to exclude when company feature is disabled */ const COMPANY_SCHEMA_EXCLUSIONS = [
17
+ {
18
+ schemaName: 'EventResponseDto',
19
+ properties: [
20
+ 'companyId'
21
+ ]
22
+ },
23
+ {
24
+ schemaName: 'CalendarEventResponseDto',
25
+ properties: [
26
+ 'companyId'
27
+ ]
28
+ }
29
+ ];
30
+ function buildDescription(enableCompanyFeature, isMultiTenant) {
31
+ const multiTenantNote = isMultiTenant ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
32
+ const companyFeatures = enableCompanyFeature ? '\n- **Company-scoped events**' : '';
33
+ const companyIsolation = enableCompanyFeature ? '\n- **Company isolation**' : '';
34
+ const multiTenantSection = enableCompanyFeature ? `
35
+ ## Multi-Tenant Support
36
+
37
+ Events are automatically isolated by:
38
+ - **Company ID**: Events belong to specific companies
39
+ - **User Context**: Participants are company members
40
+
41
+ All queries automatically filter by current user's company context.
42
+ ` : '';
43
+ return `
44
+ # Event Manager API
45
+ ${multiTenantNote}
46
+ Calendar event management with recurrence support${enableCompanyFeature ? ' and multi-tenant capabilities' : ''}.
47
+
48
+ ## Features
49
+
50
+ ### 📅 Event Management
51
+ - Create, read, update, delete events
52
+ - Color-coded events
53
+ - All-day event support${companyFeatures}
54
+
55
+ ### 🔄 Recurrence Support
56
+ - **None**: Single occurrence
57
+ - **Daily**: Every day
58
+ - **Weekly**: Specific days of the week
59
+ - **Biweekly**: Every two weeks
60
+ - **Monthly**: Same day each month
61
+
62
+ ### 👥 Participant Management
63
+ - Status tracking (pending, accepted, declined, tentative)
64
+ - Organizer designation
65
+
66
+ ### 📆 Calendar Queries
67
+ - Date range queries
68
+ - Automatic recurrence expansion
69
+ - Filter by user participation
70
+ - Include/exclude participants in response
71
+
72
+ ### 🔒 Security
73
+ - JWT authentication required
74
+ - Permission-based access control${companyIsolation}
75
+
76
+ ## Recurrence Patterns
77
+
78
+ ### Weekly Recurrence
79
+ Use the \`weekDays\` array to specify which days repeat:
80
+ - \`"SUN"\` = Sunday
81
+ - \`"MON"\` = Monday
82
+ - \`"TUE"\` = Tuesday
83
+ - \`"WED"\` = Wednesday
84
+ - \`"THU"\` = Thursday
85
+ - \`"FRI"\` = Friday
86
+ - \`"SAT"\` = Saturday
87
+
88
+ Example: \`{ "weekDays": ["MON", "WED", "FRI"] }\` = Monday, Wednesday, Friday
89
+
90
+ ### Recurrence Expansion
91
+ Calendar queries automatically expand recurring events into individual instances.
92
+ Each instance includes:
93
+ - \`isRecurrenceInstance: true\`
94
+ - \`originalEventId\`: Reference to parent event
95
+ ${multiTenantSection}
96
+ ## API Endpoints
97
+
98
+ All endpoints use POST method (RPC style):
99
+
100
+ ### Events
101
+ - \`/event-manager/event/insert\` - Create event
102
+ - \`/event-manager/event/get/:id\` - Get by ID
103
+ - \`/event-manager/event/get-all\` - List with pagination
104
+ - \`/event-manager/event/update\` - Update event
105
+ - \`/event-manager/event/delete\` - Soft delete
106
+ - \`/event-manager/event/calendar\` - Calendar query with expansion
107
+
108
+ ### Participant Operations (via Event endpoints)
109
+ - \`/event-manager/event/update-participant-status\` - Update status
110
+
111
+ ## Getting Started
112
+
113
+ 1. **Authenticate**: Obtain JWT token from /auth/login
114
+ 2. **Create Event**: POST to /event-manager/event/insert
115
+ 3. **Query Calendar**: POST to /event-manager/event/calendar with date range
116
+ `;
117
+ }
118
+ /**
119
+ * Event Manager Module Swagger Configuration
120
+ * Use this with setupSwaggerDocs() from @flusys/nestjs-core
121
+ */ function eventManagerSwaggerConfig(bootstrapConfig) {
122
+ const enableCompanyFeature = bootstrapConfig?.enableCompanyFeature ?? true;
123
+ const isMultiTenant = bootstrapConfig?.databaseMode === 'multi-tenant';
124
+ return {
125
+ title: 'Event Manager API',
126
+ description: buildDescription(enableCompanyFeature, isMultiTenant),
127
+ version: '1.0',
128
+ path: 'api/docs/event-manager',
129
+ bearerAuth: true,
130
+ excludeTags: [],
131
+ excludeSchemaProperties: enableCompanyFeature ? undefined : COMPANY_SCHEMA_EXCLUSIONS
132
+ };
133
+ }
134
+
135
+ ;// CONCATENATED MODULE: ./projects/nestjs-event-manager/src/docs/index.ts
1
136
  // Re-export permissions from shared for convenience
2
- export { EVENT_PERMISSIONS } from '@flusys/nestjs-shared';
137
+
3
138
  // Swagger configuration
4
- export { eventManagerSwaggerConfig } from './event-manager-swagger.config';
139
+
140
+
141
+
142
+ },
143
+ 422(module) {
144
+
145
+ module.exports = __rspack_external__flusys_nestjs_shared_393d2cae;
146
+
147
+
148
+ },
149
+
150
+ };
151
+ import { __webpack_require__ } from '../runtime.js';
152
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
153
+ import * as __rspack_chunk_1 from './index.js';
154
+ __webpack_require__.C(__rspack_chunk_1);
155
+ var __webpack_exports__ = __webpack_exec__(283);var __webpack_exports__EVENT_PERMISSIONS = __webpack_exports__.U;
156
+ var __webpack_exports__eventManagerSwaggerConfig = __webpack_exports__.S;
157
+ export { __webpack_exports__EVENT_PERMISSIONS as EVENT_PERMISSIONS, __webpack_exports__eventManagerSwaggerConfig as eventManagerSwaggerConfig };