@oneuptime/common 7.0.3026 → 7.0.3038

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