@oneuptime/common 7.0.3035 → 7.0.3040

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 (97) hide show
  1. package/Models/DatabaseModels/IncidentNoteTemplate.ts +8 -0
  2. package/Models/DatabaseModels/IncidentTemplate.ts +8 -0
  3. package/Models/DatabaseModels/Index.ts +6 -0
  4. package/Models/DatabaseModels/ScheduledMaintenance.ts +70 -0
  5. package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +988 -0
  6. package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.ts +390 -0
  7. package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.ts +389 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1725880508430-MigrationName.ts +269 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1725881099935-MigrationName.ts +17 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/1725881475134-MigrationName.ts +35 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/1725884177663-MigrationName.ts +29 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1725898621366-MigrationName.ts +29 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1725900315712-MigrationName.ts +59 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1725901024444-MigrationName.ts +23 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1725975175669-MigrationName.ts +29 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1725976810107-MigrationName.ts +17 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +18 -0
  18. package/Server/Services/IncidentService.ts +45 -0
  19. package/Server/Services/IncidentStateService.ts +47 -6
  20. package/Server/Services/Index.ts +8 -0
  21. package/Server/Services/ScheduledMaintenanceService.ts +308 -1
  22. package/Server/Services/ScheduledMaintenanceTemplateOwnerTeamService.ts +10 -0
  23. package/Server/Services/ScheduledMaintenanceTemplateOwnerUserService.ts +10 -0
  24. package/Server/Services/ScheduledMaintenanceTemplateService.ts +318 -0
  25. package/Types/Database/DatabaseProperty.ts +6 -3
  26. package/Types/Events/Recurring.ts +86 -41
  27. package/Types/Permission.ts +115 -1
  28. package/Types/SerializableObjectDictionary.ts +2 -0
  29. package/UI/Components/Detail/Detail.tsx +12 -3
  30. package/UI/Components/Detail/Field.ts +1 -1
  31. package/UI/Components/Events/RecurringArrayFieldElement.tsx +104 -0
  32. package/UI/Components/Events/RecurringArrayViewElement.tsx +37 -0
  33. package/UI/Components/Events/RecurringViewElement.tsx +2 -0
  34. package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js +8 -0
  35. package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js.map +1 -1
  36. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +8 -0
  37. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
  38. package/build/dist/Models/DatabaseModels/Index.js +6 -0
  39. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  40. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +73 -0
  41. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  42. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1012 -0
  43. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -0
  44. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js +402 -0
  45. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js.map +1 -0
  46. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js +401 -0
  47. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js.map +1 -0
  48. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725880508430-MigrationName.js +98 -0
  49. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725880508430-MigrationName.js.map +1 -0
  50. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725881099935-MigrationName.js +12 -0
  51. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725881099935-MigrationName.js.map +1 -0
  52. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725881475134-MigrationName.js +18 -0
  53. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725881475134-MigrationName.js.map +1 -0
  54. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725884177663-MigrationName.js +16 -0
  55. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725884177663-MigrationName.js.map +1 -0
  56. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725898621366-MigrationName.js +16 -0
  57. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725898621366-MigrationName.js.map +1 -0
  58. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725900315712-MigrationName.js +26 -0
  59. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725900315712-MigrationName.js.map +1 -0
  60. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725901024444-MigrationName.js +14 -0
  61. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725901024444-MigrationName.js.map +1 -0
  62. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725975175669-MigrationName.js +16 -0
  63. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725975175669-MigrationName.js.map +1 -0
  64. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725976810107-MigrationName.js +12 -0
  65. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1725976810107-MigrationName.js.map +1 -0
  66. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +18 -0
  67. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  68. package/build/dist/Server/Services/IncidentService.js +34 -0
  69. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  70. package/build/dist/Server/Services/IncidentStateService.js +25 -2
  71. package/build/dist/Server/Services/IncidentStateService.js.map +1 -1
  72. package/build/dist/Server/Services/Index.js +7 -0
  73. package/build/dist/Server/Services/Index.js.map +1 -1
  74. package/build/dist/Server/Services/ScheduledMaintenanceService.js +209 -1
  75. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  76. package/build/dist/Server/Services/ScheduledMaintenanceTemplateOwnerTeamService.js +9 -0
  77. package/build/dist/Server/Services/ScheduledMaintenanceTemplateOwnerTeamService.js.map +1 -0
  78. package/build/dist/Server/Services/ScheduledMaintenanceTemplateOwnerUserService.js +9 -0
  79. package/build/dist/Server/Services/ScheduledMaintenanceTemplateOwnerUserService.js.map +1 -0
  80. package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js +203 -0
  81. package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js.map +1 -0
  82. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  83. package/build/dist/Types/Events/Recurring.js +47 -20
  84. package/build/dist/Types/Events/Recurring.js.map +1 -1
  85. package/build/dist/Types/Permission.js +97 -1
  86. package/build/dist/Types/Permission.js.map +1 -1
  87. package/build/dist/Types/SerializableObjectDictionary.js +2 -0
  88. package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
  89. package/build/dist/UI/Components/Detail/Detail.js +9 -1
  90. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  91. package/build/dist/UI/Components/Events/RecurringArrayFieldElement.js +49 -0
  92. package/build/dist/UI/Components/Events/RecurringArrayFieldElement.js.map +1 -0
  93. package/build/dist/UI/Components/Events/RecurringArrayViewElement.js +18 -0
  94. package/build/dist/UI/Components/Events/RecurringArrayViewElement.js.map +1 -0
  95. package/build/dist/UI/Components/Events/RecurringViewElement.js +2 -1
  96. package/build/dist/UI/Components/Events/RecurringViewElement.js.map +1 -1
  97. package/package.json +2 -2
@@ -0,0 +1,1012 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import Label from "./Label";
11
+ import Monitor from "./Monitor";
12
+ import MonitorStatus from "./MonitorStatus";
13
+ import Project from "./Project";
14
+ import ScheduledMaintenanceState from "./ScheduledMaintenanceState";
15
+ import StatusPage from "./StatusPage";
16
+ import User from "./User";
17
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
18
+ import Route from "../../Types/API/Route";
19
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
20
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
21
+ import AccessControlColumn from "../../Types/Database/AccessControlColumn";
22
+ import ColumnLength from "../../Types/Database/ColumnLength";
23
+ import ColumnType from "../../Types/Database/ColumnType";
24
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
25
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
26
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
27
+ import MultiTenentQueryAllowed from "../../Types/Database/MultiTenentQueryAllowed";
28
+ import SlugifyColumn from "../../Types/Database/SlugifyColumn";
29
+ import TableColumn from "../../Types/Database/TableColumn";
30
+ import TableColumnType from "../../Types/Database/TableColumnType";
31
+ import TableMetadata from "../../Types/Database/TableMetadata";
32
+ import TenantColumn from "../../Types/Database/TenantColumn";
33
+ import IconProp from "../../Types/Icon/IconProp";
34
+ import ObjectID from "../../Types/ObjectID";
35
+ import Permission from "../../Types/Permission";
36
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
37
+ import Recurring from "../../Types/Events/Recurring";
38
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
39
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
40
+ let ScheduledMaintenanceTemplate = class ScheduledMaintenanceTemplate extends BaseModel {
41
+ constructor() {
42
+ super(...arguments);
43
+ this.project = undefined;
44
+ this.projectId = undefined;
45
+ this.templateName = undefined;
46
+ this.templateDescription = undefined;
47
+ this.title = undefined;
48
+ this.description = undefined;
49
+ this.slug = undefined;
50
+ this.createdByUser = undefined;
51
+ this.createdByUserId = undefined;
52
+ this.deletedByUser = undefined;
53
+ this.deletedByUserId = undefined;
54
+ this.monitors = undefined; // monitors affected by this scheduledMaintenance.
55
+ this.statusPages = undefined; // visible on which status page?
56
+ this.labels = undefined;
57
+ this.changeMonitorStatusTo = undefined;
58
+ this.changeMonitorStatusToId = undefined;
59
+ // RECURRING EVENT PROPS
60
+ this.firstEventScheduledAt = undefined;
61
+ this.firstEventStartsAt = undefined;
62
+ this.firstEventEndsAt = undefined;
63
+ this.recurringInterval = undefined;
64
+ this.isRecurringEvent = undefined;
65
+ this.scheduleNextEventAt = undefined;
66
+ // Recurring Props End.
67
+ this.shouldStatusPageSubscribersBeNotifiedOnEventCreated = undefined;
68
+ this.shouldStatusPageSubscribersBeNotifiedWhenEventChangedToOngoing = undefined;
69
+ this.shouldStatusPageSubscribersBeNotifiedWhenEventChangedToEnded = undefined;
70
+ this.customFields = undefined;
71
+ this.sendSubscriberNotificationsOnBeforeTheEvent = undefined;
72
+ }
73
+ };
74
+ __decorate([
75
+ ColumnAccessControl({
76
+ create: [
77
+ Permission.ProjectOwner,
78
+ Permission.ProjectAdmin,
79
+ Permission.ProjectMember,
80
+ Permission.CreateScheduledMaintenanceTemplate,
81
+ ],
82
+ read: [
83
+ Permission.ProjectOwner,
84
+ Permission.ProjectAdmin,
85
+ Permission.ProjectMember,
86
+ Permission.ReadScheduledMaintenanceTemplate,
87
+ ],
88
+ update: [],
89
+ }),
90
+ TableColumn({
91
+ manyToOneRelationColumn: "projectId",
92
+ type: TableColumnType.Entity,
93
+ modelType: Project,
94
+ title: "Project",
95
+ description: "Relation to Project Resource in which this object belongs",
96
+ }),
97
+ ManyToOne(() => {
98
+ return Project;
99
+ }, {
100
+ eager: false,
101
+ nullable: true,
102
+ onDelete: "CASCADE",
103
+ orphanedRowAction: "nullify",
104
+ }),
105
+ JoinColumn({ name: "projectId" }),
106
+ __metadata("design:type", Project)
107
+ ], ScheduledMaintenanceTemplate.prototype, "project", void 0);
108
+ __decorate([
109
+ ColumnAccessControl({
110
+ create: [
111
+ Permission.ProjectOwner,
112
+ Permission.ProjectAdmin,
113
+ Permission.ProjectMember,
114
+ Permission.CreateScheduledMaintenanceTemplate,
115
+ ],
116
+ read: [
117
+ Permission.ProjectOwner,
118
+ Permission.ProjectAdmin,
119
+ Permission.ProjectMember,
120
+ Permission.ReadScheduledMaintenanceTemplate,
121
+ ],
122
+ update: [],
123
+ }),
124
+ Index(),
125
+ TableColumn({
126
+ type: TableColumnType.ObjectID,
127
+ required: true,
128
+ canReadOnRelationQuery: true,
129
+ title: "Project ID",
130
+ description: "ID of your OneUptime Project in which this object belongs",
131
+ }),
132
+ Column({
133
+ type: ColumnType.ObjectID,
134
+ nullable: false,
135
+ transformer: ObjectID.getDatabaseTransformer(),
136
+ }),
137
+ __metadata("design:type", ObjectID)
138
+ ], ScheduledMaintenanceTemplate.prototype, "projectId", void 0);
139
+ __decorate([
140
+ ColumnAccessControl({
141
+ create: [
142
+ Permission.ProjectOwner,
143
+ Permission.ProjectAdmin,
144
+ Permission.ProjectMember,
145
+ Permission.CreateScheduledMaintenanceTemplate,
146
+ ],
147
+ read: [
148
+ Permission.ProjectOwner,
149
+ Permission.ProjectAdmin,
150
+ Permission.ProjectMember,
151
+ Permission.ReadScheduledMaintenanceTemplate,
152
+ ],
153
+ update: [
154
+ Permission.ProjectOwner,
155
+ Permission.ProjectAdmin,
156
+ Permission.ProjectMember,
157
+ Permission.EditScheduledMaintenanceTemplate,
158
+ ],
159
+ }),
160
+ TableColumn({
161
+ required: true,
162
+ type: TableColumnType.ShortText,
163
+ canReadOnRelationQuery: true,
164
+ title: "Name",
165
+ description: "Name of the Scheduled Maintenance Template",
166
+ }),
167
+ Column({
168
+ nullable: false,
169
+ type: ColumnType.ShortText,
170
+ length: ColumnLength.ShortText,
171
+ }),
172
+ __metadata("design:type", String)
173
+ ], ScheduledMaintenanceTemplate.prototype, "templateName", void 0);
174
+ __decorate([
175
+ ColumnAccessControl({
176
+ create: [
177
+ Permission.ProjectOwner,
178
+ Permission.ProjectAdmin,
179
+ Permission.ProjectMember,
180
+ Permission.CreateScheduledMaintenanceTemplate,
181
+ ],
182
+ read: [
183
+ Permission.ProjectOwner,
184
+ Permission.ProjectAdmin,
185
+ Permission.ProjectMember,
186
+ Permission.ReadScheduledMaintenanceTemplate,
187
+ ],
188
+ update: [
189
+ Permission.ProjectOwner,
190
+ Permission.ProjectAdmin,
191
+ Permission.ProjectMember,
192
+ Permission.EditScheduledMaintenanceTemplate,
193
+ ],
194
+ }),
195
+ TableColumn({
196
+ required: true,
197
+ type: TableColumnType.LongText,
198
+ canReadOnRelationQuery: true,
199
+ title: "Template Description",
200
+ description: "Description of the Scheduled Maintenance Template",
201
+ }),
202
+ Column({
203
+ nullable: false,
204
+ type: ColumnType.LongText,
205
+ length: ColumnLength.LongText,
206
+ }),
207
+ __metadata("design:type", String)
208
+ ], ScheduledMaintenanceTemplate.prototype, "templateDescription", void 0);
209
+ __decorate([
210
+ ColumnAccessControl({
211
+ create: [
212
+ Permission.ProjectOwner,
213
+ Permission.ProjectAdmin,
214
+ Permission.ProjectMember,
215
+ Permission.CreateScheduledMaintenanceTemplate,
216
+ ],
217
+ read: [
218
+ Permission.ProjectOwner,
219
+ Permission.ProjectAdmin,
220
+ Permission.ProjectMember,
221
+ Permission.ReadScheduledMaintenanceTemplate,
222
+ ],
223
+ update: [
224
+ Permission.ProjectOwner,
225
+ Permission.ProjectAdmin,
226
+ Permission.ProjectMember,
227
+ Permission.EditScheduledMaintenanceTemplate,
228
+ ],
229
+ }),
230
+ Index(),
231
+ TableColumn({
232
+ required: true,
233
+ type: TableColumnType.ShortText,
234
+ canReadOnRelationQuery: true,
235
+ title: "Title",
236
+ description: "Title of this scheduled event.",
237
+ }),
238
+ Column({
239
+ nullable: false,
240
+ type: ColumnType.ShortText,
241
+ length: ColumnLength.ShortText,
242
+ }),
243
+ __metadata("design:type", String)
244
+ ], ScheduledMaintenanceTemplate.prototype, "title", void 0);
245
+ __decorate([
246
+ ColumnAccessControl({
247
+ create: [
248
+ Permission.ProjectOwner,
249
+ Permission.ProjectAdmin,
250
+ Permission.ProjectMember,
251
+ Permission.CreateScheduledMaintenanceTemplate,
252
+ ],
253
+ read: [
254
+ Permission.ProjectOwner,
255
+ Permission.ProjectAdmin,
256
+ Permission.ProjectMember,
257
+ Permission.ReadScheduledMaintenanceTemplate,
258
+ ],
259
+ update: [
260
+ Permission.ProjectOwner,
261
+ Permission.ProjectAdmin,
262
+ Permission.ProjectMember,
263
+ Permission.EditScheduledMaintenanceTemplate,
264
+ ],
265
+ }),
266
+ TableColumn({
267
+ required: false,
268
+ type: TableColumnType.Markdown,
269
+ title: "Description",
270
+ description: "Description of this scheduled event that will show up on Status Page. This is in markdown.",
271
+ }),
272
+ Column({
273
+ nullable: true,
274
+ type: ColumnType.Markdown,
275
+ }),
276
+ __metadata("design:type", String)
277
+ ], ScheduledMaintenanceTemplate.prototype, "description", void 0);
278
+ __decorate([
279
+ Index(),
280
+ ColumnAccessControl({
281
+ create: [
282
+ Permission.ProjectOwner,
283
+ Permission.ProjectAdmin,
284
+ Permission.ProjectMember,
285
+ Permission.CreateScheduledMaintenanceTemplate,
286
+ ],
287
+ read: [
288
+ Permission.ProjectOwner,
289
+ Permission.ProjectAdmin,
290
+ Permission.ProjectMember,
291
+ Permission.ReadScheduledMaintenanceTemplate,
292
+ ],
293
+ update: [],
294
+ }),
295
+ TableColumn({
296
+ required: true,
297
+ unique: true,
298
+ type: TableColumnType.Slug,
299
+ title: "Slug",
300
+ description: "Friendly globally unique name for your object",
301
+ }),
302
+ Column({
303
+ nullable: false,
304
+ type: ColumnType.Slug,
305
+ length: ColumnLength.Slug,
306
+ unique: true,
307
+ }),
308
+ __metadata("design:type", String)
309
+ ], ScheduledMaintenanceTemplate.prototype, "slug", void 0);
310
+ __decorate([
311
+ ColumnAccessControl({
312
+ create: [
313
+ Permission.ProjectOwner,
314
+ Permission.ProjectAdmin,
315
+ Permission.ProjectMember,
316
+ Permission.CreateScheduledMaintenanceTemplate,
317
+ ],
318
+ read: [
319
+ Permission.ProjectOwner,
320
+ Permission.ProjectAdmin,
321
+ Permission.ProjectMember,
322
+ Permission.ReadScheduledMaintenanceTemplate,
323
+ ],
324
+ update: [],
325
+ }),
326
+ TableColumn({
327
+ manyToOneRelationColumn: "createdByUserId",
328
+ type: TableColumnType.Entity,
329
+ modelType: User,
330
+ title: "Created by User",
331
+ description: "Relation to User who created this object (if this object was created by a User)",
332
+ }),
333
+ ManyToOne(() => {
334
+ return User;
335
+ }, {
336
+ eager: false,
337
+ nullable: true,
338
+ onDelete: "CASCADE",
339
+ orphanedRowAction: "nullify",
340
+ }),
341
+ JoinColumn({ name: "createdByUserId" }),
342
+ __metadata("design:type", User)
343
+ ], ScheduledMaintenanceTemplate.prototype, "createdByUser", void 0);
344
+ __decorate([
345
+ ColumnAccessControl({
346
+ create: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.CreateScheduledMaintenanceTemplate,
351
+ ],
352
+ read: [
353
+ Permission.ProjectOwner,
354
+ Permission.ProjectAdmin,
355
+ Permission.ProjectMember,
356
+ Permission.ReadScheduledMaintenanceTemplate,
357
+ ],
358
+ update: [],
359
+ }),
360
+ TableColumn({
361
+ type: TableColumnType.ObjectID,
362
+ title: "Created by User ID",
363
+ description: "User ID who created this object (if this object was created by a User)",
364
+ }),
365
+ Column({
366
+ type: ColumnType.ObjectID,
367
+ nullable: true,
368
+ transformer: ObjectID.getDatabaseTransformer(),
369
+ }),
370
+ __metadata("design:type", ObjectID)
371
+ ], ScheduledMaintenanceTemplate.prototype, "createdByUserId", void 0);
372
+ __decorate([
373
+ ColumnAccessControl({
374
+ create: [],
375
+ read: [],
376
+ update: [],
377
+ }),
378
+ TableColumn({
379
+ manyToOneRelationColumn: "deletedByUserId",
380
+ type: TableColumnType.Entity,
381
+ title: "Deleted by User",
382
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
383
+ }),
384
+ ManyToOne(() => {
385
+ return User;
386
+ }, {
387
+ cascade: false,
388
+ eager: false,
389
+ nullable: true,
390
+ onDelete: "CASCADE",
391
+ orphanedRowAction: "nullify",
392
+ }),
393
+ JoinColumn({ name: "deletedByUserId" }),
394
+ __metadata("design:type", User)
395
+ ], ScheduledMaintenanceTemplate.prototype, "deletedByUser", void 0);
396
+ __decorate([
397
+ ColumnAccessControl({
398
+ create: [],
399
+ read: [],
400
+ update: [],
401
+ }),
402
+ TableColumn({
403
+ type: TableColumnType.ObjectID,
404
+ title: "Deleted by User ID",
405
+ description: "User ID who deleted this object (if this object was deleted by a User)",
406
+ }),
407
+ Column({
408
+ type: ColumnType.ObjectID,
409
+ nullable: true,
410
+ transformer: ObjectID.getDatabaseTransformer(),
411
+ }),
412
+ __metadata("design:type", ObjectID)
413
+ ], ScheduledMaintenanceTemplate.prototype, "deletedByUserId", void 0);
414
+ __decorate([
415
+ ColumnAccessControl({
416
+ create: [
417
+ Permission.ProjectOwner,
418
+ Permission.ProjectAdmin,
419
+ Permission.ProjectMember,
420
+ Permission.CreateScheduledMaintenanceTemplate,
421
+ ],
422
+ read: [
423
+ Permission.ProjectOwner,
424
+ Permission.ProjectAdmin,
425
+ Permission.ProjectMember,
426
+ Permission.ReadScheduledMaintenanceTemplate,
427
+ ],
428
+ update: [
429
+ Permission.ProjectOwner,
430
+ Permission.ProjectAdmin,
431
+ Permission.ProjectMember,
432
+ Permission.EditScheduledMaintenanceTemplate,
433
+ ],
434
+ }),
435
+ TableColumn({
436
+ required: false,
437
+ type: TableColumnType.EntityArray,
438
+ modelType: Monitor,
439
+ title: "Monitors",
440
+ description: "List of monitors attached to this event",
441
+ }),
442
+ ManyToMany(() => {
443
+ return Monitor;
444
+ }, { eager: false }),
445
+ JoinTable({
446
+ name: "ScheduledMaintenanceTemplateMonitor",
447
+ inverseJoinColumn: {
448
+ name: "monitorId",
449
+ referencedColumnName: "_id",
450
+ },
451
+ joinColumn: {
452
+ name: "scheduledMaintenanceTemplateId",
453
+ referencedColumnName: "_id",
454
+ },
455
+ }),
456
+ __metadata("design:type", Array)
457
+ ], ScheduledMaintenanceTemplate.prototype, "monitors", void 0);
458
+ __decorate([
459
+ ColumnAccessControl({
460
+ create: [
461
+ Permission.ProjectOwner,
462
+ Permission.ProjectAdmin,
463
+ Permission.ProjectMember,
464
+ Permission.CreateScheduledMaintenanceTemplate,
465
+ ],
466
+ read: [
467
+ Permission.ProjectOwner,
468
+ Permission.ProjectAdmin,
469
+ Permission.ProjectMember,
470
+ Permission.ReadScheduledMaintenanceTemplate,
471
+ ],
472
+ update: [
473
+ Permission.ProjectOwner,
474
+ Permission.ProjectAdmin,
475
+ Permission.ProjectMember,
476
+ Permission.EditScheduledMaintenanceTemplate,
477
+ ],
478
+ }),
479
+ TableColumn({
480
+ required: false,
481
+ type: TableColumnType.EntityArray,
482
+ modelType: StatusPage,
483
+ title: "Status Pages",
484
+ description: "List of status pages to show this event on",
485
+ }),
486
+ ManyToMany(() => {
487
+ return StatusPage;
488
+ }, { eager: false }),
489
+ JoinTable({
490
+ name: "ScheduledMaintenanceTemplateStatusPage",
491
+ inverseJoinColumn: {
492
+ name: "statusPageId",
493
+ referencedColumnName: "_id",
494
+ },
495
+ joinColumn: {
496
+ name: "scheduledMaintenanceTemplateId",
497
+ referencedColumnName: "_id",
498
+ },
499
+ }),
500
+ __metadata("design:type", Array)
501
+ ], ScheduledMaintenanceTemplate.prototype, "statusPages", void 0);
502
+ __decorate([
503
+ ColumnAccessControl({
504
+ create: [
505
+ Permission.ProjectOwner,
506
+ Permission.ProjectAdmin,
507
+ Permission.ProjectMember,
508
+ Permission.CreateScheduledMaintenanceTemplate,
509
+ ],
510
+ read: [
511
+ Permission.ProjectOwner,
512
+ Permission.ProjectAdmin,
513
+ Permission.ProjectMember,
514
+ Permission.ReadScheduledMaintenanceTemplate,
515
+ ],
516
+ update: [
517
+ Permission.ProjectOwner,
518
+ Permission.ProjectAdmin,
519
+ Permission.ProjectMember,
520
+ Permission.EditScheduledMaintenanceTemplate,
521
+ ],
522
+ }),
523
+ TableColumn({
524
+ required: false,
525
+ type: TableColumnType.EntityArray,
526
+ modelType: Label,
527
+ title: "Labels",
528
+ description: "Relation to Labels Array where this object is categorized in.",
529
+ }),
530
+ ManyToMany(() => {
531
+ return Label;
532
+ }, { eager: false }),
533
+ JoinTable({
534
+ name: "ScheduledMaintenanceTemplateLabel",
535
+ inverseJoinColumn: {
536
+ name: "labelId",
537
+ referencedColumnName: "_id",
538
+ },
539
+ joinColumn: {
540
+ name: "scheduledMaintenanceTemplateId",
541
+ referencedColumnName: "_id",
542
+ },
543
+ }),
544
+ __metadata("design:type", Array)
545
+ ], ScheduledMaintenanceTemplate.prototype, "labels", void 0);
546
+ __decorate([
547
+ ColumnAccessControl({
548
+ create: [
549
+ Permission.ProjectOwner,
550
+ Permission.ProjectAdmin,
551
+ Permission.ProjectMember,
552
+ Permission.CreateScheduledMaintenanceTemplate,
553
+ ],
554
+ read: [
555
+ Permission.ProjectOwner,
556
+ Permission.ProjectAdmin,
557
+ Permission.ProjectMember,
558
+ Permission.ReadScheduledMaintenanceTemplate,
559
+ ],
560
+ update: [],
561
+ }),
562
+ TableColumn({
563
+ manyToOneRelationColumn: "changeMonitorStatusToId",
564
+ type: TableColumnType.Entity,
565
+ modelType: ScheduledMaintenanceState,
566
+ title: "Change Monitor Status To",
567
+ description: "Relation to Monitor Status Object. All monitors connected to this event will be changed to this status when the event is ongoing.",
568
+ }),
569
+ ManyToOne(() => {
570
+ return MonitorStatus;
571
+ }, {
572
+ eager: false,
573
+ nullable: true,
574
+ orphanedRowAction: "nullify",
575
+ }),
576
+ JoinColumn({ name: "changeMonitorStatusToId" }),
577
+ __metadata("design:type", MonitorStatus)
578
+ ], ScheduledMaintenanceTemplate.prototype, "changeMonitorStatusTo", void 0);
579
+ __decorate([
580
+ ColumnAccessControl({
581
+ create: [
582
+ Permission.ProjectOwner,
583
+ Permission.ProjectAdmin,
584
+ Permission.ProjectMember,
585
+ Permission.CreateScheduledMaintenanceTemplate,
586
+ ],
587
+ read: [
588
+ Permission.ProjectOwner,
589
+ Permission.ProjectAdmin,
590
+ Permission.ProjectMember,
591
+ Permission.ReadScheduledMaintenanceTemplate,
592
+ ],
593
+ update: [
594
+ Permission.ProjectOwner,
595
+ Permission.ProjectAdmin,
596
+ Permission.ProjectMember,
597
+ Permission.EditScheduledMaintenanceTemplate,
598
+ ],
599
+ }),
600
+ Index(),
601
+ TableColumn({
602
+ type: TableColumnType.ObjectID,
603
+ required: false,
604
+ title: "Change Monitor Status To ID",
605
+ description: "Relation to Monitor Status Object ID. All monitors connected to this incident will be changed to this status when the event is ongoing.",
606
+ }),
607
+ Column({
608
+ type: ColumnType.ObjectID,
609
+ nullable: true,
610
+ transformer: ObjectID.getDatabaseTransformer(),
611
+ }),
612
+ __metadata("design:type", ObjectID)
613
+ ], ScheduledMaintenanceTemplate.prototype, "changeMonitorStatusToId", void 0);
614
+ __decorate([
615
+ TableColumn({
616
+ title: "Schedule First Event At",
617
+ type: TableColumnType.Date,
618
+ required: false,
619
+ description: "When would you like to schedule the first event?",
620
+ }),
621
+ ColumnAccessControl({
622
+ create: [
623
+ Permission.ProjectOwner,
624
+ Permission.ProjectAdmin,
625
+ Permission.ProjectMember,
626
+ Permission.CreateScheduledMaintenanceTemplate,
627
+ ],
628
+ read: [
629
+ Permission.ProjectOwner,
630
+ Permission.ProjectAdmin,
631
+ Permission.ProjectMember,
632
+ Permission.ReadScheduledMaintenanceTemplate,
633
+ ],
634
+ update: [
635
+ Permission.ProjectOwner,
636
+ Permission.ProjectAdmin,
637
+ Permission.ProjectMember,
638
+ Permission.EditScheduledMaintenanceTemplate,
639
+ ],
640
+ }),
641
+ Column({
642
+ nullable: true,
643
+ type: ColumnType.Date,
644
+ }),
645
+ __metadata("design:type", Date)
646
+ ], ScheduledMaintenanceTemplate.prototype, "firstEventScheduledAt", void 0);
647
+ __decorate([
648
+ TableColumn({
649
+ title: "First Event Start At",
650
+ type: TableColumnType.Date,
651
+ required: false,
652
+ description: "When does the first event start?",
653
+ }),
654
+ ColumnAccessControl({
655
+ create: [
656
+ Permission.ProjectOwner,
657
+ Permission.ProjectAdmin,
658
+ Permission.ProjectMember,
659
+ Permission.CreateScheduledMaintenanceTemplate,
660
+ ],
661
+ read: [
662
+ Permission.ProjectOwner,
663
+ Permission.ProjectAdmin,
664
+ Permission.ProjectMember,
665
+ Permission.ReadScheduledMaintenanceTemplate,
666
+ ],
667
+ update: [
668
+ Permission.ProjectOwner,
669
+ Permission.ProjectAdmin,
670
+ Permission.ProjectMember,
671
+ Permission.EditScheduledMaintenanceTemplate,
672
+ ],
673
+ }),
674
+ Column({
675
+ nullable: true,
676
+ type: ColumnType.Date,
677
+ }),
678
+ __metadata("design:type", Date)
679
+ ], ScheduledMaintenanceTemplate.prototype, "firstEventStartsAt", void 0);
680
+ __decorate([
681
+ TableColumn({
682
+ title: "First Event Ends At",
683
+ type: TableColumnType.Date,
684
+ required: false,
685
+ description: "When does the first event end?",
686
+ }),
687
+ ColumnAccessControl({
688
+ create: [
689
+ Permission.ProjectOwner,
690
+ Permission.ProjectAdmin,
691
+ Permission.ProjectMember,
692
+ Permission.CreateScheduledMaintenanceTemplate,
693
+ ],
694
+ read: [
695
+ Permission.ProjectOwner,
696
+ Permission.ProjectAdmin,
697
+ Permission.ProjectMember,
698
+ Permission.ReadScheduledMaintenanceTemplate,
699
+ ],
700
+ update: [
701
+ Permission.ProjectOwner,
702
+ Permission.ProjectAdmin,
703
+ Permission.ProjectMember,
704
+ Permission.EditScheduledMaintenanceTemplate,
705
+ ],
706
+ }),
707
+ Column({
708
+ nullable: true,
709
+ type: ColumnType.Date,
710
+ }),
711
+ __metadata("design:type", Date)
712
+ ], ScheduledMaintenanceTemplate.prototype, "firstEventEndsAt", void 0);
713
+ __decorate([
714
+ ColumnAccessControl({
715
+ create: [
716
+ Permission.ProjectOwner,
717
+ Permission.ProjectAdmin,
718
+ Permission.ProjectMember,
719
+ Permission.CreateScheduledMaintenanceTemplate,
720
+ ],
721
+ read: [
722
+ Permission.ProjectOwner,
723
+ Permission.ProjectAdmin,
724
+ Permission.ProjectMember,
725
+ Permission.ReadScheduledMaintenanceTemplate,
726
+ ],
727
+ update: [
728
+ Permission.ProjectOwner,
729
+ Permission.ProjectAdmin,
730
+ Permission.ProjectMember,
731
+ Permission.EditScheduledMaintenanceTemplate,
732
+ ],
733
+ }),
734
+ TableColumn({
735
+ type: TableColumnType.JSON,
736
+ title: "Recurring Interval",
737
+ description: "How often should this event recur?",
738
+ }),
739
+ Column({
740
+ type: ColumnType.JSON,
741
+ nullable: true,
742
+ transformer: Recurring.getDatabaseTransformer(),
743
+ }),
744
+ __metadata("design:type", Recurring)
745
+ ], ScheduledMaintenanceTemplate.prototype, "recurringInterval", void 0);
746
+ __decorate([
747
+ ColumnAccessControl({
748
+ create: [
749
+ Permission.ProjectOwner,
750
+ Permission.ProjectAdmin,
751
+ Permission.ProjectMember,
752
+ Permission.CreateScheduledMaintenanceTemplate,
753
+ ],
754
+ read: [
755
+ Permission.ProjectOwner,
756
+ Permission.ProjectAdmin,
757
+ Permission.ProjectMember,
758
+ Permission.ReadScheduledMaintenanceTemplate,
759
+ ],
760
+ update: [],
761
+ }),
762
+ TableColumn({
763
+ isDefaultValueColumn: false,
764
+ type: TableColumnType.Boolean,
765
+ title: "Is Recurring Event",
766
+ description: "Is this a recurring event?",
767
+ }),
768
+ Column({
769
+ type: ColumnType.Boolean,
770
+ default: false,
771
+ }),
772
+ __metadata("design:type", Boolean)
773
+ ], ScheduledMaintenanceTemplate.prototype, "isRecurringEvent", void 0);
774
+ __decorate([
775
+ ColumnAccessControl({
776
+ create: [
777
+ Permission.ProjectOwner,
778
+ Permission.ProjectAdmin,
779
+ Permission.ProjectMember,
780
+ Permission.CreateScheduledMaintenanceTemplate,
781
+ ],
782
+ read: [
783
+ Permission.ProjectOwner,
784
+ Permission.ProjectAdmin,
785
+ Permission.ProjectMember,
786
+ Permission.ReadScheduledMaintenanceTemplate,
787
+ ],
788
+ update: [],
789
+ }),
790
+ TableColumn({
791
+ isDefaultValueColumn: false,
792
+ type: TableColumnType.Date,
793
+ title: "Schedule Next Event At",
794
+ description: "When is the next event scheduled?",
795
+ }),
796
+ Column({
797
+ type: ColumnType.Date,
798
+ nullable: true,
799
+ }),
800
+ __metadata("design:type", Date)
801
+ ], ScheduledMaintenanceTemplate.prototype, "scheduleNextEventAt", void 0);
802
+ __decorate([
803
+ ColumnAccessControl({
804
+ create: [
805
+ Permission.ProjectOwner,
806
+ Permission.ProjectAdmin,
807
+ Permission.ProjectMember,
808
+ Permission.CreateScheduledMaintenanceTemplate,
809
+ ],
810
+ read: [
811
+ Permission.ProjectOwner,
812
+ Permission.ProjectAdmin,
813
+ Permission.ProjectMember,
814
+ Permission.ReadScheduledMaintenanceTemplate,
815
+ ],
816
+ update: [],
817
+ }),
818
+ TableColumn({
819
+ isDefaultValueColumn: true,
820
+ type: TableColumnType.Boolean,
821
+ title: "Should subscribers be notified when event is created?",
822
+ description: "Should subscribers be notified about this event creation?",
823
+ }),
824
+ Column({
825
+ type: ColumnType.Boolean,
826
+ default: true,
827
+ }),
828
+ __metadata("design:type", Boolean)
829
+ ], ScheduledMaintenanceTemplate.prototype, "shouldStatusPageSubscribersBeNotifiedOnEventCreated", void 0);
830
+ __decorate([
831
+ ColumnAccessControl({
832
+ create: [
833
+ Permission.ProjectOwner,
834
+ Permission.ProjectAdmin,
835
+ Permission.ProjectMember,
836
+ Permission.CreateScheduledMaintenanceTemplate,
837
+ ],
838
+ read: [
839
+ Permission.ProjectOwner,
840
+ Permission.ProjectAdmin,
841
+ Permission.ProjectMember,
842
+ Permission.ReadScheduledMaintenanceTemplate,
843
+ ],
844
+ update: [],
845
+ }),
846
+ TableColumn({
847
+ isDefaultValueColumn: true,
848
+ type: TableColumnType.Boolean,
849
+ title: "Should subscribers be notified when event is changed to ongoing?",
850
+ description: "Should subscribers be notified about this event event is changed to ongoing?",
851
+ }),
852
+ Column({
853
+ type: ColumnType.Boolean,
854
+ default: true,
855
+ }),
856
+ __metadata("design:type", Boolean)
857
+ ], ScheduledMaintenanceTemplate.prototype, "shouldStatusPageSubscribersBeNotifiedWhenEventChangedToOngoing", void 0);
858
+ __decorate([
859
+ ColumnAccessControl({
860
+ create: [
861
+ Permission.ProjectOwner,
862
+ Permission.ProjectAdmin,
863
+ Permission.ProjectMember,
864
+ Permission.CreateScheduledMaintenanceTemplate,
865
+ ],
866
+ read: [
867
+ Permission.ProjectOwner,
868
+ Permission.ProjectAdmin,
869
+ Permission.ProjectMember,
870
+ Permission.ReadScheduledMaintenanceTemplate,
871
+ ],
872
+ update: [],
873
+ }),
874
+ TableColumn({
875
+ isDefaultValueColumn: true,
876
+ type: TableColumnType.Boolean,
877
+ title: "Should subscribers be notified when event is changed to ended?",
878
+ description: "Should subscribers be notified about this event event is changed to ended?",
879
+ }),
880
+ Column({
881
+ type: ColumnType.Boolean,
882
+ default: true,
883
+ }),
884
+ __metadata("design:type", Boolean)
885
+ ], ScheduledMaintenanceTemplate.prototype, "shouldStatusPageSubscribersBeNotifiedWhenEventChangedToEnded", void 0);
886
+ __decorate([
887
+ ColumnAccessControl({
888
+ create: [
889
+ Permission.ProjectOwner,
890
+ Permission.ProjectAdmin,
891
+ Permission.ProjectMember,
892
+ Permission.CreateScheduledMaintenanceTemplate,
893
+ ],
894
+ read: [
895
+ Permission.ProjectOwner,
896
+ Permission.ProjectAdmin,
897
+ Permission.ProjectMember,
898
+ Permission.ReadScheduledMaintenanceTemplate,
899
+ ],
900
+ update: [
901
+ Permission.ProjectOwner,
902
+ Permission.ProjectAdmin,
903
+ Permission.ProjectMember,
904
+ Permission.EditScheduledMaintenanceTemplate,
905
+ ],
906
+ }),
907
+ TableColumn({
908
+ isDefaultValueColumn: false,
909
+ required: false,
910
+ type: TableColumnType.JSON,
911
+ title: "Custom Fields",
912
+ description: "Custom Fields on this resource.",
913
+ }),
914
+ Column({
915
+ type: ColumnType.JSON,
916
+ nullable: true,
917
+ }),
918
+ __metadata("design:type", Object)
919
+ ], ScheduledMaintenanceTemplate.prototype, "customFields", void 0);
920
+ __decorate([
921
+ ColumnAccessControl({
922
+ create: [
923
+ Permission.ProjectOwner,
924
+ Permission.ProjectAdmin,
925
+ Permission.ProjectMember,
926
+ Permission.CreateScheduledMaintenanceTemplate,
927
+ ],
928
+ read: [
929
+ Permission.ProjectOwner,
930
+ Permission.ProjectAdmin,
931
+ Permission.ProjectMember,
932
+ Permission.ReadScheduledMaintenanceTemplate,
933
+ ],
934
+ update: [
935
+ Permission.ProjectOwner,
936
+ Permission.ProjectAdmin,
937
+ Permission.ProjectMember,
938
+ Permission.EditScheduledMaintenanceTemplate,
939
+ ],
940
+ }),
941
+ TableColumn({
942
+ type: TableColumnType.JSON,
943
+ required: false,
944
+ isDefaultValueColumn: false,
945
+ title: "Subscriber notifications before the event",
946
+ description: "Should subscribers be notified before the event?",
947
+ }),
948
+ Column({
949
+ type: ColumnType.JSON,
950
+ nullable: true,
951
+ transformer: Recurring.getDatabaseTransformer(),
952
+ }),
953
+ __metadata("design:type", Array)
954
+ ], ScheduledMaintenanceTemplate.prototype, "sendSubscriberNotificationsOnBeforeTheEvent", void 0);
955
+ ScheduledMaintenanceTemplate = __decorate([
956
+ TableBillingAccessControl({
957
+ create: PlanType.Growth,
958
+ read: PlanType.Growth,
959
+ update: PlanType.Growth,
960
+ delete: PlanType.Growth,
961
+ }),
962
+ EnableDocumentation(),
963
+ AccessControlColumn("labels"),
964
+ MultiTenentQueryAllowed(true),
965
+ TenantColumn("projectId"),
966
+ TableAccessControl({
967
+ create: [
968
+ Permission.ProjectOwner,
969
+ Permission.ProjectAdmin,
970
+ Permission.ProjectMember,
971
+ Permission.CreateScheduledMaintenanceTemplate,
972
+ ],
973
+ read: [
974
+ Permission.ProjectOwner,
975
+ Permission.ProjectAdmin,
976
+ Permission.ProjectMember,
977
+ Permission.ReadScheduledMaintenanceTemplate,
978
+ ],
979
+ delete: [
980
+ Permission.ProjectOwner,
981
+ Permission.ProjectAdmin,
982
+ Permission.ProjectMember,
983
+ Permission.DeleteScheduledMaintenanceTemplate,
984
+ ],
985
+ update: [
986
+ Permission.ProjectOwner,
987
+ Permission.ProjectAdmin,
988
+ Permission.ProjectMember,
989
+ Permission.EditScheduledMaintenanceTemplate,
990
+ ],
991
+ }),
992
+ CrudApiEndpoint(new Route("/scheduled-maintenance-template")),
993
+ SlugifyColumn("name", "slug"),
994
+ Entity({
995
+ name: "ScheduledMaintenanceTemplate",
996
+ }),
997
+ EnableWorkflow({
998
+ create: true,
999
+ delete: true,
1000
+ update: true,
1001
+ read: true,
1002
+ }),
1003
+ TableMetadata({
1004
+ singularName: "Scheduled Maintenance Template",
1005
+ pluralName: "Scheduled Maintenance Templates",
1006
+ icon: IconProp.Clock,
1007
+ tableName: "ScheduledMaintenanceTemplate",
1008
+ tableDescription: "Manage scheduled maintenance templates for your project",
1009
+ })
1010
+ ], ScheduledMaintenanceTemplate);
1011
+ export default ScheduledMaintenanceTemplate;
1012
+ //# sourceMappingURL=ScheduledMaintenanceTemplate.js.map