@oneuptime/common 7.0.4922 → 7.0.4972

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 (165) hide show
  1. package/Models/DatabaseModels/CallLog.ts +578 -0
  2. package/Models/DatabaseModels/EmailLog.ts +579 -0
  3. package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -1
  4. package/Models/DatabaseModels/Index.ts +4 -0
  5. package/Models/DatabaseModels/PushNotificationLog.ts +877 -0
  6. package/Models/DatabaseModels/SmsLog.ts +578 -0
  7. package/Models/DatabaseModels/WorkspaceNotificationLog.ts +931 -0
  8. package/Server/API/StatusPageAPI.ts +2 -0
  9. package/Server/API/UserPushAPI.ts +12 -1
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/1754776130988-MigrationName.ts +259 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/1754828812691-MigrationName.ts +105 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1754910440587-MigrationName.ts +105 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1755030730926-MigrationName.ts +101 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1755088852971-MigrationName.ts +371 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1755093133870-MigrationName.ts +29 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1755109893911-MigrationName.ts +23 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1755110936888-MigrationName.ts +41 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +16 -0
  19. package/Server/Services/CallService.ts +26 -1
  20. package/Server/Services/Index.ts +2 -0
  21. package/Server/Services/MailService.ts +60 -0
  22. package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +6 -0
  23. package/Server/Services/OnCallDutyPolicyScheduleService.ts +12 -0
  24. package/Server/Services/ProjectService.ts +3 -7
  25. package/Server/Services/PushNotificationLogService.ts +14 -0
  26. package/Server/Services/PushNotificationService.ts +129 -13
  27. package/Server/Services/ScheduledMaintenanceService.ts +4 -0
  28. package/Server/Services/SmsService.ts +25 -0
  29. package/Server/Services/StatusPagePrivateUserService.ts +1 -0
  30. package/Server/Services/StatusPageService.ts +1 -0
  31. package/Server/Services/StatusPageSubscriberService.ts +3 -0
  32. package/Server/Services/TeamMemberService.ts +1 -0
  33. package/Server/Services/UserCallService.ts +1 -0
  34. package/Server/Services/UserEmailService.ts +1 -0
  35. package/Server/Services/UserNotificationRuleService.ts +85 -6
  36. package/Server/Services/UserNotificationSettingService.ts +58 -0
  37. package/Server/Services/UserOnCallLogService.ts +1 -0
  38. package/Server/Services/UserSmsService.ts +1 -0
  39. package/Server/Services/WorkspaceNotificationLogService.ts +276 -0
  40. package/Server/Services/WorkspaceNotificationRuleService.ts +290 -33
  41. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +21 -6
  42. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +66 -0
  43. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +66 -1
  44. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +65 -0
  45. package/Server/Utils/Workspace/Slack/Slack.ts +21 -6
  46. package/Types/Permission.ts +20 -0
  47. package/Types/PushNotification/PushNotificationRequest.ts +4 -1
  48. package/Types/PushNotification/PushStatus.ts +6 -0
  49. package/Types/Workspace/WorkspaceNotificationActionType.ts +8 -0
  50. package/Types/Workspace/WorkspaceNotificationStatus.ts +6 -0
  51. package/Typings/elkjs.d.ts +30 -0
  52. package/UI/Components/Detail/Detail.tsx +1 -1
  53. package/UI/Components/Graphs/ServiceDependencyGraph.tsx +281 -0
  54. package/UI/Components/Tabs/Tab.tsx +8 -9
  55. package/UI/Components/Tabs/Tabs.tsx +17 -16
  56. package/Utils/Uptime/UptimeUtil.ts +20 -1
  57. package/build/dist/Models/DatabaseModels/CallLog.js +580 -0
  58. package/build/dist/Models/DatabaseModels/CallLog.js.map +1 -1
  59. package/build/dist/Models/DatabaseModels/EmailLog.js +580 -0
  60. package/build/dist/Models/DatabaseModels/EmailLog.js.map +1 -1
  61. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -1
  62. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
  63. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  64. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  65. package/build/dist/Models/DatabaseModels/PushNotificationLog.js +904 -0
  66. package/build/dist/Models/DatabaseModels/PushNotificationLog.js.map +1 -0
  67. package/build/dist/Models/DatabaseModels/SmsLog.js +580 -0
  68. package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -1
  69. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +961 -0
  70. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -0
  71. package/build/dist/Server/API/StatusPageAPI.js +2 -0
  72. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  73. package/build/dist/Server/API/UserPushAPI.js +9 -1
  74. package/build/dist/Server/API/UserPushAPI.js.map +1 -1
  75. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754776130988-MigrationName.js +104 -0
  76. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754776130988-MigrationName.js.map +1 -0
  77. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754828812691-MigrationName.js +42 -0
  78. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754828812691-MigrationName.js.map +1 -0
  79. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754910440587-MigrationName.js +42 -0
  80. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754910440587-MigrationName.js.map +1 -0
  81. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755030730926-MigrationName.js +44 -0
  82. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755030730926-MigrationName.js.map +1 -0
  83. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755088852971-MigrationName.js +134 -0
  84. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755088852971-MigrationName.js.map +1 -0
  85. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755093133870-MigrationName.js +16 -0
  86. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755093133870-MigrationName.js.map +1 -0
  87. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755109893911-MigrationName.js +14 -0
  88. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755109893911-MigrationName.js.map +1 -0
  89. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755110936888-MigrationName.js +20 -0
  90. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1755110936888-MigrationName.js.map +1 -0
  91. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +16 -0
  92. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  93. package/build/dist/Server/Services/CallService.js +12 -1
  94. package/build/dist/Server/Services/CallService.js.map +1 -1
  95. package/build/dist/Server/Services/Index.js +2 -0
  96. package/build/dist/Server/Services/Index.js.map +1 -1
  97. package/build/dist/Server/Services/MailService.js +37 -0
  98. package/build/dist/Server/Services/MailService.js.map +1 -1
  99. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +4 -0
  100. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
  101. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +9 -0
  102. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  103. package/build/dist/Server/Services/ProjectService.js +3 -5
  104. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  105. package/build/dist/Server/Services/PushNotificationLogService.js +13 -0
  106. package/build/dist/Server/Services/PushNotificationLogService.js.map +1 -0
  107. package/build/dist/Server/Services/PushNotificationService.js +98 -13
  108. package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
  109. package/build/dist/Server/Services/ScheduledMaintenanceService.js +4 -0
  110. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  111. package/build/dist/Server/Services/SmsService.js +12 -1
  112. package/build/dist/Server/Services/SmsService.js.map +1 -1
  113. package/build/dist/Server/Services/StatusPagePrivateUserService.js +1 -0
  114. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  115. package/build/dist/Server/Services/StatusPageService.js +1 -0
  116. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  117. package/build/dist/Server/Services/StatusPageSubscriberService.js +3 -0
  118. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  119. package/build/dist/Server/Services/TeamMemberService.js +1 -0
  120. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  121. package/build/dist/Server/Services/UserCallService.js +1 -0
  122. package/build/dist/Server/Services/UserCallService.js.map +1 -1
  123. package/build/dist/Server/Services/UserEmailService.js +1 -0
  124. package/build/dist/Server/Services/UserEmailService.js.map +1 -1
  125. package/build/dist/Server/Services/UserNotificationRuleService.js +70 -6
  126. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  127. package/build/dist/Server/Services/UserNotificationSettingService.js +43 -0
  128. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  129. package/build/dist/Server/Services/UserOnCallLogService.js +1 -0
  130. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  131. package/build/dist/Server/Services/UserSmsService.js +1 -0
  132. package/build/dist/Server/Services/UserSmsService.js.map +1 -1
  133. package/build/dist/Server/Services/WorkspaceNotificationLogService.js +181 -0
  134. package/build/dist/Server/Services/WorkspaceNotificationLogService.js.map +1 -0
  135. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +193 -3
  136. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  137. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +19 -6
  138. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  139. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +48 -0
  140. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -1
  141. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +48 -1
  142. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
  143. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +47 -0
  144. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -1
  145. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +19 -6
  146. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  147. package/build/dist/Types/Permission.js +16 -0
  148. package/build/dist/Types/Permission.js.map +1 -1
  149. package/build/dist/Types/PushNotification/PushStatus.js +7 -0
  150. package/build/dist/Types/PushNotification/PushStatus.js.map +1 -0
  151. package/build/dist/Types/Workspace/WorkspaceNotificationActionType.js +9 -0
  152. package/build/dist/Types/Workspace/WorkspaceNotificationActionType.js.map +1 -0
  153. package/build/dist/Types/Workspace/WorkspaceNotificationStatus.js +7 -0
  154. package/build/dist/Types/Workspace/WorkspaceNotificationStatus.js.map +1 -0
  155. package/build/dist/UI/Components/Detail/Detail.js +1 -1
  156. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  157. package/build/dist/UI/Components/Graphs/ServiceDependencyGraph.js +206 -0
  158. package/build/dist/UI/Components/Graphs/ServiceDependencyGraph.js.map +1 -0
  159. package/build/dist/UI/Components/Tabs/Tab.js +6 -5
  160. package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
  161. package/build/dist/UI/Components/Tabs/Tabs.js +5 -6
  162. package/build/dist/UI/Components/Tabs/Tabs.js.map +1 -1
  163. package/build/dist/Utils/Uptime/UptimeUtil.js +10 -1
  164. package/build/dist/Utils/Uptime/UptimeUtil.js.map +1 -1
  165. package/package.json +2 -1
@@ -1,5 +1,14 @@
1
1
  import Project from "./Project";
2
+ import Incident from "./Incident";
3
+ import Alert from "./Alert";
4
+ import ScheduledMaintenance from "./ScheduledMaintenance";
5
+ import StatusPage from "./StatusPage";
6
+ import StatusPageAnnouncement from "./StatusPageAnnouncement";
2
7
  import User from "./User";
8
+ import OnCallDutyPolicy from "./OnCallDutyPolicy";
9
+ import OnCallDutyPolicyEscalationRule from "./OnCallDutyPolicyEscalationRule";
10
+ import OnCallDutyPolicySchedule from "./OnCallDutyPolicySchedule";
11
+ import Team from "./Team";
3
12
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
4
13
  import Route from "../../Types/API/Route";
5
14
  import CallStatus from "../../Types/Call/CallStatus";
@@ -256,6 +265,575 @@ export default class CallLog extends BaseModel {
256
265
  })
257
266
  public callCostInUSDCents?: number = undefined;
258
267
 
268
+ // Relations to resources that triggered this Call (nullable)
269
+
270
+ @ColumnAccessControl({
271
+ create: [],
272
+ read: [
273
+ Permission.ProjectOwner,
274
+ Permission.ProjectAdmin,
275
+ Permission.ProjectMember,
276
+ Permission.ReadCallLog,
277
+ ],
278
+ update: [],
279
+ })
280
+ @TableColumn({
281
+ manyToOneRelationColumn: "incidentId",
282
+ type: TableColumnType.Entity,
283
+ modelType: Incident,
284
+ title: "Incident",
285
+ description: "Incident associated with this Call (if any)",
286
+ })
287
+ @ManyToOne(
288
+ () => {
289
+ return Incident;
290
+ },
291
+ {
292
+ eager: false,
293
+ nullable: true,
294
+ onDelete: "CASCADE",
295
+ orphanedRowAction: "nullify",
296
+ },
297
+ )
298
+ @JoinColumn({ name: "incidentId" })
299
+ public incident?: Incident = undefined;
300
+
301
+ @ColumnAccessControl({
302
+ create: [],
303
+ read: [
304
+ Permission.ProjectOwner,
305
+ Permission.ProjectAdmin,
306
+ Permission.ProjectMember,
307
+ Permission.ReadCallLog,
308
+ ],
309
+ update: [],
310
+ })
311
+ @Index()
312
+ @TableColumn({
313
+ type: TableColumnType.ObjectID,
314
+ required: false,
315
+ canReadOnRelationQuery: true,
316
+ title: "Incident ID",
317
+ description: "ID of Incident associated with this Call (if any)",
318
+ })
319
+ @Column({
320
+ type: ColumnType.ObjectID,
321
+ nullable: true,
322
+ transformer: ObjectID.getDatabaseTransformer(),
323
+ })
324
+ public incidentId?: ObjectID = undefined;
325
+
326
+ @ColumnAccessControl({
327
+ create: [],
328
+ read: [
329
+ Permission.ProjectOwner,
330
+ Permission.ProjectAdmin,
331
+ Permission.ProjectMember,
332
+ Permission.ReadCallLog,
333
+ ],
334
+ update: [],
335
+ })
336
+ @TableColumn({
337
+ manyToOneRelationColumn: "userId",
338
+ type: TableColumnType.Entity,
339
+ modelType: User,
340
+ title: "User",
341
+ description: "User who initiated this Call (if any)",
342
+ })
343
+ @ManyToOne(
344
+ () => {
345
+ return User;
346
+ },
347
+ {
348
+ eager: false,
349
+ nullable: true,
350
+ onDelete: "CASCADE",
351
+ orphanedRowAction: "nullify",
352
+ },
353
+ )
354
+ @JoinColumn({ name: "userId" })
355
+ public user?: User = undefined;
356
+
357
+ @ColumnAccessControl({
358
+ create: [],
359
+ read: [
360
+ Permission.ProjectOwner,
361
+ Permission.ProjectAdmin,
362
+ Permission.ProjectMember,
363
+ Permission.ReadCallLog,
364
+ ],
365
+ update: [],
366
+ })
367
+ @Index()
368
+ @TableColumn({
369
+ type: TableColumnType.ObjectID,
370
+ required: false,
371
+ canReadOnRelationQuery: true,
372
+ title: "User ID",
373
+ description: "ID of User who initiated this Call (if any)",
374
+ })
375
+ @Column({
376
+ type: ColumnType.ObjectID,
377
+ nullable: true,
378
+ transformer: ObjectID.getDatabaseTransformer(),
379
+ })
380
+ public userId?: ObjectID = undefined;
381
+
382
+ @ColumnAccessControl({
383
+ create: [],
384
+ read: [
385
+ Permission.ProjectOwner,
386
+ Permission.ProjectAdmin,
387
+ Permission.ProjectMember,
388
+ Permission.ReadCallLog,
389
+ ],
390
+ update: [],
391
+ })
392
+ @TableColumn({
393
+ manyToOneRelationColumn: "alertId",
394
+ type: TableColumnType.Entity,
395
+ modelType: Alert,
396
+ title: "Alert",
397
+ description: "Alert associated with this Call (if any)",
398
+ })
399
+ @ManyToOne(
400
+ () => {
401
+ return Alert;
402
+ },
403
+ {
404
+ eager: false,
405
+ nullable: true,
406
+ onDelete: "CASCADE",
407
+ orphanedRowAction: "nullify",
408
+ },
409
+ )
410
+ @JoinColumn({ name: "alertId" })
411
+ public alert?: Alert = undefined;
412
+
413
+ @ColumnAccessControl({
414
+ create: [],
415
+ read: [
416
+ Permission.ProjectOwner,
417
+ Permission.ProjectAdmin,
418
+ Permission.ProjectMember,
419
+ Permission.ReadCallLog,
420
+ ],
421
+ update: [],
422
+ })
423
+ @Index()
424
+ @TableColumn({
425
+ type: TableColumnType.ObjectID,
426
+ required: false,
427
+ canReadOnRelationQuery: true,
428
+ title: "Alert ID",
429
+ description: "ID of Alert associated with this Call (if any)",
430
+ })
431
+ @Column({
432
+ type: ColumnType.ObjectID,
433
+ nullable: true,
434
+ transformer: ObjectID.getDatabaseTransformer(),
435
+ })
436
+ public alertId?: ObjectID = undefined;
437
+
438
+ @ColumnAccessControl({
439
+ create: [],
440
+ read: [
441
+ Permission.ProjectOwner,
442
+ Permission.ProjectAdmin,
443
+ Permission.ProjectMember,
444
+ Permission.ReadCallLog,
445
+ ],
446
+ update: [],
447
+ })
448
+ @TableColumn({
449
+ manyToOneRelationColumn: "scheduledMaintenanceId",
450
+ type: TableColumnType.Entity,
451
+ modelType: ScheduledMaintenance,
452
+ title: "Scheduled Maintenance",
453
+ description: "Scheduled Maintenance associated with this Call (if any)",
454
+ })
455
+ @ManyToOne(
456
+ () => {
457
+ return ScheduledMaintenance;
458
+ },
459
+ {
460
+ eager: false,
461
+ nullable: true,
462
+ onDelete: "CASCADE",
463
+ orphanedRowAction: "nullify",
464
+ },
465
+ )
466
+ @JoinColumn({ name: "scheduledMaintenanceId" })
467
+ public scheduledMaintenance?: ScheduledMaintenance = undefined;
468
+
469
+ @ColumnAccessControl({
470
+ create: [],
471
+ read: [
472
+ Permission.ProjectOwner,
473
+ Permission.ProjectAdmin,
474
+ Permission.ProjectMember,
475
+ Permission.ReadCallLog,
476
+ ],
477
+ update: [],
478
+ })
479
+ @Index()
480
+ @TableColumn({
481
+ type: TableColumnType.ObjectID,
482
+ required: false,
483
+ canReadOnRelationQuery: true,
484
+ title: "Scheduled Maintenance ID",
485
+ description:
486
+ "ID of Scheduled Maintenance associated with this Call (if any)",
487
+ })
488
+ @Column({
489
+ type: ColumnType.ObjectID,
490
+ nullable: true,
491
+ transformer: ObjectID.getDatabaseTransformer(),
492
+ })
493
+ public scheduledMaintenanceId?: ObjectID = undefined;
494
+
495
+ @ColumnAccessControl({
496
+ create: [],
497
+ read: [
498
+ Permission.ProjectOwner,
499
+ Permission.ProjectAdmin,
500
+ Permission.ProjectMember,
501
+ Permission.ReadCallLog,
502
+ ],
503
+ update: [],
504
+ })
505
+ @TableColumn({
506
+ manyToOneRelationColumn: "statusPageId",
507
+ type: TableColumnType.Entity,
508
+ modelType: StatusPage,
509
+ title: "Status Page",
510
+ description: "Status Page associated with this Call (if any)",
511
+ })
512
+ @ManyToOne(
513
+ () => {
514
+ return StatusPage;
515
+ },
516
+ {
517
+ eager: false,
518
+ nullable: true,
519
+ onDelete: "CASCADE",
520
+ orphanedRowAction: "nullify",
521
+ },
522
+ )
523
+ @JoinColumn({ name: "statusPageId" })
524
+ public statusPage?: StatusPage = undefined;
525
+
526
+ @ColumnAccessControl({
527
+ create: [],
528
+ read: [
529
+ Permission.ProjectOwner,
530
+ Permission.ProjectAdmin,
531
+ Permission.ProjectMember,
532
+ Permission.ReadCallLog,
533
+ ],
534
+ update: [],
535
+ })
536
+ @Index()
537
+ @TableColumn({
538
+ type: TableColumnType.ObjectID,
539
+ required: false,
540
+ canReadOnRelationQuery: true,
541
+ title: "Status Page ID",
542
+ description: "ID of Status Page associated with this Call (if any)",
543
+ })
544
+ @Column({
545
+ type: ColumnType.ObjectID,
546
+ nullable: true,
547
+ transformer: ObjectID.getDatabaseTransformer(),
548
+ })
549
+ public statusPageId?: ObjectID = undefined;
550
+
551
+ @ColumnAccessControl({
552
+ create: [],
553
+ read: [
554
+ Permission.ProjectOwner,
555
+ Permission.ProjectAdmin,
556
+ Permission.ProjectMember,
557
+ Permission.ReadCallLog,
558
+ ],
559
+ update: [],
560
+ })
561
+ @TableColumn({
562
+ manyToOneRelationColumn: "statusPageAnnouncementId",
563
+ type: TableColumnType.Entity,
564
+ modelType: StatusPageAnnouncement,
565
+ title: "Status Page Announcement",
566
+ description: "Status Page Announcement associated with this Call (if any)",
567
+ })
568
+ @ManyToOne(
569
+ () => {
570
+ return StatusPageAnnouncement;
571
+ },
572
+ {
573
+ eager: false,
574
+ nullable: true,
575
+ onDelete: "CASCADE",
576
+ orphanedRowAction: "nullify",
577
+ },
578
+ )
579
+ @JoinColumn({ name: "statusPageAnnouncementId" })
580
+ public statusPageAnnouncement?: StatusPageAnnouncement = undefined;
581
+
582
+ @ColumnAccessControl({
583
+ create: [],
584
+ read: [
585
+ Permission.ProjectOwner,
586
+ Permission.ProjectAdmin,
587
+ Permission.ProjectMember,
588
+ Permission.ReadCallLog,
589
+ ],
590
+ update: [],
591
+ })
592
+ @Index()
593
+ @TableColumn({
594
+ type: TableColumnType.ObjectID,
595
+ required: false,
596
+ canReadOnRelationQuery: true,
597
+ title: "Status Page Announcement ID",
598
+ description:
599
+ "ID of Status Page Announcement associated with this Call (if any)",
600
+ })
601
+ @Column({
602
+ type: ColumnType.ObjectID,
603
+ nullable: true,
604
+ transformer: ObjectID.getDatabaseTransformer(),
605
+ })
606
+ public statusPageAnnouncementId?: ObjectID = undefined;
607
+
608
+ @ColumnAccessControl({
609
+ create: [],
610
+ read: [
611
+ Permission.ProjectOwner,
612
+ Permission.ProjectAdmin,
613
+ Permission.ProjectMember,
614
+ Permission.ReadCallLog,
615
+ ],
616
+ update: [],
617
+ })
618
+ @TableColumn({
619
+ manyToOneRelationColumn: "onCallDutyPolicyId",
620
+ type: TableColumnType.Entity,
621
+ modelType: OnCallDutyPolicy,
622
+ title: "On-Call Duty Policy",
623
+ description: "On-Call Duty Policy associated with this Call (if any)",
624
+ })
625
+ @ManyToOne(
626
+ () => {
627
+ return OnCallDutyPolicy;
628
+ },
629
+ {
630
+ eager: false,
631
+ nullable: true,
632
+ onDelete: "CASCADE",
633
+ orphanedRowAction: "nullify",
634
+ },
635
+ )
636
+ @JoinColumn({ name: "onCallDutyPolicyId" })
637
+ public onCallDutyPolicy?: OnCallDutyPolicy = undefined;
638
+
639
+ @ColumnAccessControl({
640
+ create: [],
641
+ read: [
642
+ Permission.ProjectOwner,
643
+ Permission.ProjectAdmin,
644
+ Permission.ProjectMember,
645
+ Permission.ReadCallLog,
646
+ ],
647
+ update: [],
648
+ })
649
+ @Index()
650
+ @TableColumn({
651
+ type: TableColumnType.ObjectID,
652
+ required: false,
653
+ canReadOnRelationQuery: true,
654
+ title: "On-Call Duty Policy ID",
655
+ description: "ID of On-Call Duty Policy associated with this Call (if any)",
656
+ })
657
+ @Column({
658
+ type: ColumnType.ObjectID,
659
+ nullable: true,
660
+ transformer: ObjectID.getDatabaseTransformer(),
661
+ })
662
+ public onCallDutyPolicyId?: ObjectID = undefined;
663
+
664
+ @ColumnAccessControl({
665
+ create: [],
666
+ read: [
667
+ Permission.ProjectOwner,
668
+ Permission.ProjectAdmin,
669
+ Permission.ProjectMember,
670
+ Permission.ReadCallLog,
671
+ ],
672
+ update: [],
673
+ })
674
+ @TableColumn({
675
+ manyToOneRelationColumn: "onCallDutyPolicyEscalationRuleId",
676
+ type: TableColumnType.Entity,
677
+ modelType: OnCallDutyPolicyEscalationRule,
678
+ title: "On-Call Duty Policy Escalation Rule",
679
+ description:
680
+ "On-Call Duty Policy Escalation Rule associated with this Call (if any)",
681
+ })
682
+ @ManyToOne(
683
+ () => {
684
+ return OnCallDutyPolicyEscalationRule;
685
+ },
686
+ {
687
+ eager: false,
688
+ nullable: true,
689
+ onDelete: "CASCADE",
690
+ orphanedRowAction: "nullify",
691
+ },
692
+ )
693
+ @JoinColumn({ name: "onCallDutyPolicyEscalationRuleId" })
694
+ public onCallDutyPolicyEscalationRule?: OnCallDutyPolicyEscalationRule =
695
+ undefined;
696
+
697
+ @ColumnAccessControl({
698
+ create: [],
699
+ read: [
700
+ Permission.ProjectOwner,
701
+ Permission.ProjectAdmin,
702
+ Permission.ProjectMember,
703
+ Permission.ReadCallLog,
704
+ ],
705
+ update: [],
706
+ })
707
+ @Index()
708
+ @TableColumn({
709
+ type: TableColumnType.ObjectID,
710
+ required: false,
711
+ canReadOnRelationQuery: true,
712
+ title: "On-Call Duty Policy Escalation Rule ID",
713
+ description:
714
+ "ID of On-Call Duty Policy Escalation Rule associated with this Call (if any)",
715
+ })
716
+ @Column({
717
+ type: ColumnType.ObjectID,
718
+ nullable: true,
719
+ transformer: ObjectID.getDatabaseTransformer(),
720
+ })
721
+ public onCallDutyPolicyEscalationRuleId?: ObjectID = undefined;
722
+
723
+ @ColumnAccessControl({
724
+ create: [],
725
+ read: [
726
+ Permission.ProjectOwner,
727
+ Permission.ProjectAdmin,
728
+ Permission.ProjectMember,
729
+ Permission.ReadCallLog,
730
+ ],
731
+ update: [],
732
+ })
733
+ @TableColumn({
734
+ manyToOneRelationColumn: "onCallDutyPolicyScheduleId",
735
+ type: TableColumnType.Entity,
736
+ modelType: OnCallDutyPolicySchedule,
737
+ title: "On-Call Duty Policy Schedule",
738
+ description:
739
+ "On-Call Duty Policy Schedule associated with this Call (if any)",
740
+ })
741
+ @ManyToOne(
742
+ () => {
743
+ return OnCallDutyPolicySchedule;
744
+ },
745
+ {
746
+ eager: false,
747
+ nullable: true,
748
+ onDelete: "CASCADE",
749
+ orphanedRowAction: "nullify",
750
+ },
751
+ )
752
+ @JoinColumn({ name: "onCallDutyPolicyScheduleId" })
753
+ public onCallDutyPolicySchedule?: OnCallDutyPolicySchedule = undefined;
754
+
755
+ @ColumnAccessControl({
756
+ create: [],
757
+ read: [
758
+ Permission.ProjectOwner,
759
+ Permission.ProjectAdmin,
760
+ Permission.ProjectMember,
761
+ Permission.ReadCallLog,
762
+ ],
763
+ update: [],
764
+ })
765
+ @Index()
766
+ @TableColumn({
767
+ type: TableColumnType.ObjectID,
768
+ required: false,
769
+ canReadOnRelationQuery: true,
770
+ title: "On-Call Duty Policy Schedule ID",
771
+ description:
772
+ "ID of On-Call Duty Policy Schedule associated with this Call (if any)",
773
+ })
774
+ @Column({
775
+ type: ColumnType.ObjectID,
776
+ nullable: true,
777
+ transformer: ObjectID.getDatabaseTransformer(),
778
+ })
779
+ public onCallDutyPolicyScheduleId?: ObjectID = undefined;
780
+
781
+ @ColumnAccessControl({
782
+ create: [],
783
+ read: [
784
+ Permission.ProjectOwner,
785
+ Permission.ProjectAdmin,
786
+ Permission.ProjectMember,
787
+ Permission.ReadCallLog,
788
+ ],
789
+ update: [],
790
+ })
791
+ @TableColumn({
792
+ manyToOneRelationColumn: "teamId",
793
+ type: TableColumnType.Entity,
794
+ modelType: Team,
795
+ title: "Team",
796
+ description: "Team associated with this Call (if any)",
797
+ })
798
+ @ManyToOne(
799
+ () => {
800
+ return Team;
801
+ },
802
+ {
803
+ eager: false,
804
+ nullable: true,
805
+ onDelete: "CASCADE",
806
+ orphanedRowAction: "nullify",
807
+ },
808
+ )
809
+ @JoinColumn({ name: "teamId" })
810
+ public team?: Team = undefined;
811
+
812
+ @ColumnAccessControl({
813
+ create: [],
814
+ read: [
815
+ Permission.ProjectOwner,
816
+ Permission.ProjectAdmin,
817
+ Permission.ProjectMember,
818
+ Permission.ReadCallLog,
819
+ ],
820
+ update: [],
821
+ })
822
+ @Index()
823
+ @TableColumn({
824
+ type: TableColumnType.ObjectID,
825
+ required: false,
826
+ canReadOnRelationQuery: true,
827
+ title: "Team ID",
828
+ description: "ID of Team associated with this Call (if any)",
829
+ })
830
+ @Column({
831
+ type: ColumnType.ObjectID,
832
+ nullable: true,
833
+ transformer: ObjectID.getDatabaseTransformer(),
834
+ })
835
+ public teamId?: ObjectID = undefined;
836
+
259
837
  @ColumnAccessControl({
260
838
  create: [],
261
839
  read: [],