@oneuptime/common 9.3.22 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/Models/DatabaseModels/IncomingCallLog.ts +521 -0
  2. package/Models/DatabaseModels/IncomingCallLogItem.ts +463 -0
  3. package/Models/DatabaseModels/IncomingCallPolicy.ts +811 -0
  4. package/Models/DatabaseModels/IncomingCallPolicyEscalationRule.ts +597 -0
  5. package/Models/DatabaseModels/Index.ts +18 -0
  6. package/Models/DatabaseModels/ProjectSCIMLog.ts +422 -0
  7. package/Models/DatabaseModels/StatusPageSCIMLog.ts +455 -0
  8. package/Models/DatabaseModels/User.ts +0 -15
  9. package/Models/DatabaseModels/UserIncomingCallNumber.ts +296 -0
  10. package/Server/API/UserIncomingCallNumberAPI.ts +128 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/1768583966447-MigrationName.ts +121 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1768647802022-RemoveAlertPhoneNumberFromUser.ts +22 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1768649699509-MigrationName.ts +787 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1768682071562-MigrationName.ts +29 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  16. package/Server/Services/IncomingCallLogItemService.ts +10 -0
  17. package/Server/Services/IncomingCallLogService.ts +10 -0
  18. package/Server/Services/IncomingCallPolicyEscalationRuleService.ts +267 -0
  19. package/Server/Services/IncomingCallPolicyService.ts +10 -0
  20. package/Server/Services/Index.ts +7 -0
  21. package/Server/Services/ProjectSCIMLogService.ts +11 -0
  22. package/Server/Services/StatusPageSCIMLogService.ts +11 -0
  23. package/Server/Services/UserCallService.ts +31 -0
  24. package/Server/Services/UserIncomingCallNumberService.ts +258 -0
  25. package/Server/Services/UserSmsService.ts +31 -0
  26. package/Server/Utils/StartServer.ts +5 -0
  27. package/Types/Call/CallProvider.ts +99 -0
  28. package/Types/Call/CallProviderType.ts +6 -0
  29. package/Types/Icon/IconProp.ts +1 -0
  30. package/Types/IncomingCall/IncomingCallStatus.ts +13 -0
  31. package/Types/Permission.ts +126 -0
  32. package/Types/Phone.ts +53 -4
  33. package/Types/SCIM/SCIMLogStatus.ts +7 -0
  34. package/UI/Components/Diagram/ConceptCards.tsx +74 -0
  35. package/UI/Components/Diagram/HorizontalStepChain.tsx +92 -0
  36. package/UI/Components/Diagram/Index.ts +11 -0
  37. package/UI/Components/Diagram/NumberedSteps.tsx +77 -0
  38. package/UI/Components/Diagram/VerticalFlowSteps.tsx +59 -0
  39. package/UI/Components/Icon/Icon.tsx +10 -0
  40. package/UI/Components/SimpleLogViewer/SimpleLogViewer.tsx +86 -2
  41. package/build/dist/Models/DatabaseModels/IncomingCallLog.js +565 -0
  42. package/build/dist/Models/DatabaseModels/IncomingCallLog.js.map +1 -0
  43. package/build/dist/Models/DatabaseModels/IncomingCallLogItem.js +497 -0
  44. package/build/dist/Models/DatabaseModels/IncomingCallLogItem.js.map +1 -0
  45. package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js +840 -0
  46. package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js.map +1 -0
  47. package/build/dist/Models/DatabaseModels/IncomingCallPolicyEscalationRule.js +619 -0
  48. package/build/dist/Models/DatabaseModels/IncomingCallPolicyEscalationRule.js.map +1 -0
  49. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  50. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  51. package/build/dist/Models/DatabaseModels/ProjectSCIMLog.js +455 -0
  52. package/build/dist/Models/DatabaseModels/ProjectSCIMLog.js.map +1 -0
  53. package/build/dist/Models/DatabaseModels/StatusPageSCIMLog.js +486 -0
  54. package/build/dist/Models/DatabaseModels/StatusPageSCIMLog.js.map +1 -0
  55. package/build/dist/Models/DatabaseModels/User.js +0 -16
  56. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  57. package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js +315 -0
  58. package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js.map +1 -0
  59. package/build/dist/Server/API/UserIncomingCallNumberAPI.js +72 -0
  60. package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -0
  61. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768583966447-MigrationName.js +48 -0
  62. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768583966447-MigrationName.js.map +1 -0
  63. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768647802022-RemoveAlertPhoneNumberFromUser.js +34 -0
  64. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768647802022-RemoveAlertPhoneNumberFromUser.js.map +1 -0
  65. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768649699509-MigrationName.js +270 -0
  66. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768649699509-MigrationName.js.map +1 -0
  67. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768682071562-MigrationName.js +16 -0
  68. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768682071562-MigrationName.js.map +1 -0
  69. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  70. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  71. package/build/dist/Server/Services/IncomingCallLogItemService.js +9 -0
  72. package/build/dist/Server/Services/IncomingCallLogItemService.js.map +1 -0
  73. package/build/dist/Server/Services/IncomingCallLogService.js +9 -0
  74. package/build/dist/Server/Services/IncomingCallLogService.js.map +1 -0
  75. package/build/dist/Server/Services/IncomingCallPolicyEscalationRuleService.js +197 -0
  76. package/build/dist/Server/Services/IncomingCallPolicyEscalationRuleService.js.map +1 -0
  77. package/build/dist/Server/Services/IncomingCallPolicyService.js +9 -0
  78. package/build/dist/Server/Services/IncomingCallPolicyService.js.map +1 -0
  79. package/build/dist/Server/Services/Index.js +6 -0
  80. package/build/dist/Server/Services/Index.js.map +1 -1
  81. package/build/dist/Server/Services/ProjectSCIMLogService.js +10 -0
  82. package/build/dist/Server/Services/ProjectSCIMLogService.js.map +1 -0
  83. package/build/dist/Server/Services/StatusPageSCIMLogService.js +10 -0
  84. package/build/dist/Server/Services/StatusPageSCIMLogService.js.map +1 -0
  85. package/build/dist/Server/Services/UserCallService.js +21 -0
  86. package/build/dist/Server/Services/UserCallService.js.map +1 -1
  87. package/build/dist/Server/Services/UserIncomingCallNumberService.js +225 -0
  88. package/build/dist/Server/Services/UserIncomingCallNumberService.js.map +1 -0
  89. package/build/dist/Server/Services/UserSmsService.js +21 -0
  90. package/build/dist/Server/Services/UserSmsService.js.map +1 -1
  91. package/build/dist/Server/Utils/StartServer.js +5 -0
  92. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  93. package/build/dist/Types/Call/CallProvider.js +2 -0
  94. package/build/dist/Types/Call/CallProvider.js.map +1 -0
  95. package/build/dist/Types/Call/CallProviderType.js +7 -0
  96. package/build/dist/Types/Call/CallProviderType.js.map +1 -0
  97. package/build/dist/Types/Icon/IconProp.js +1 -0
  98. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  99. package/build/dist/Types/IncomingCall/IncomingCallStatus.js +14 -0
  100. package/build/dist/Types/IncomingCall/IncomingCallStatus.js.map +1 -0
  101. package/build/dist/Types/Permission.js +104 -0
  102. package/build/dist/Types/Permission.js.map +1 -1
  103. package/build/dist/Types/Phone.js +47 -3
  104. package/build/dist/Types/Phone.js.map +1 -1
  105. package/build/dist/Types/SCIM/SCIMLogStatus.js +8 -0
  106. package/build/dist/Types/SCIM/SCIMLogStatus.js.map +1 -0
  107. package/build/dist/UI/Components/Diagram/ConceptCards.js +30 -0
  108. package/build/dist/UI/Components/Diagram/ConceptCards.js.map +1 -0
  109. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js +30 -0
  110. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js.map +1 -0
  111. package/build/dist/UI/Components/Diagram/Index.js +5 -0
  112. package/build/dist/UI/Components/Diagram/Index.js.map +1 -0
  113. package/build/dist/UI/Components/Diagram/NumberedSteps.js +18 -0
  114. package/build/dist/UI/Components/Diagram/NumberedSteps.js.map +1 -0
  115. package/build/dist/UI/Components/Diagram/VerticalFlowSteps.js +16 -0
  116. package/build/dist/UI/Components/Diagram/VerticalFlowSteps.js.map +1 -0
  117. package/build/dist/UI/Components/Icon/Icon.js +4 -0
  118. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  119. package/build/dist/UI/Components/SimpleLogViewer/SimpleLogViewer.js +30 -1
  120. package/build/dist/UI/Components/SimpleLogViewer/SimpleLogViewer.js.map +1 -1
  121. package/package.json +1 -1
@@ -0,0 +1,455 @@
1
+ import Project from "./Project";
2
+ import StatusPage from "./StatusPage";
3
+ import StatusPageSCIM from "./StatusPageSCIM";
4
+ import User from "./User";
5
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
6
+ import Route from "../../Types/API/Route";
7
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
8
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
9
+ import ColumnLength from "../../Types/Database/ColumnLength";
10
+ import ColumnType from "../../Types/Database/ColumnType";
11
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
12
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
13
+ import TableColumn from "../../Types/Database/TableColumn";
14
+ import TableColumnType from "../../Types/Database/TableColumnType";
15
+ import TableMetadata from "../../Types/Database/TableMetadata";
16
+ import TenantColumn from "../../Types/Database/TenantColumn";
17
+ import IconProp from "../../Types/Icon/IconProp";
18
+ import ObjectID from "../../Types/ObjectID";
19
+ import Permission from "../../Types/Permission";
20
+ import SCIMLogStatus from "../../Types/SCIM/SCIMLogStatus";
21
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
22
+
23
+ @EnableDocumentation()
24
+ @TenantColumn("projectId")
25
+ @TableAccessControl({
26
+ create: [],
27
+ read: [
28
+ Permission.ProjectOwner,
29
+ Permission.ProjectAdmin,
30
+ Permission.ProjectMember,
31
+ Permission.ReadStatusPageSCIMLog,
32
+ ],
33
+ delete: [],
34
+ update: [],
35
+ })
36
+ @CrudApiEndpoint(new Route("/status-page-scim-log"))
37
+ @Entity({
38
+ name: "StatusPageSCIMLog",
39
+ })
40
+ @TableMetadata({
41
+ tableName: "StatusPageSCIMLog",
42
+ singularName: "Status Page SCIM Log",
43
+ pluralName: "Status Page SCIM Logs",
44
+ icon: IconProp.Terminal,
45
+ tableDescription:
46
+ "Logs of all SCIM provisioning operations for status pages.",
47
+ })
48
+ export default class StatusPageSCIMLog extends BaseModel {
49
+ @ColumnAccessControl({
50
+ create: [],
51
+ read: [
52
+ Permission.ProjectOwner,
53
+ Permission.ProjectAdmin,
54
+ Permission.ProjectMember,
55
+ Permission.ReadStatusPageSCIMLog,
56
+ ],
57
+ update: [],
58
+ })
59
+ @TableColumn({
60
+ manyToOneRelationColumn: "projectId",
61
+ type: TableColumnType.Entity,
62
+ modelType: Project,
63
+ title: "Project",
64
+ description: "Relation to Project Resource in which this object belongs",
65
+ })
66
+ @ManyToOne(
67
+ () => {
68
+ return Project;
69
+ },
70
+ {
71
+ eager: false,
72
+ nullable: true,
73
+ onDelete: "CASCADE",
74
+ orphanedRowAction: "nullify",
75
+ },
76
+ )
77
+ @JoinColumn({ name: "projectId" })
78
+ public project?: Project = undefined;
79
+
80
+ @ColumnAccessControl({
81
+ create: [],
82
+ read: [
83
+ Permission.ProjectOwner,
84
+ Permission.ProjectAdmin,
85
+ Permission.ProjectMember,
86
+ Permission.ReadStatusPageSCIMLog,
87
+ ],
88
+ update: [],
89
+ })
90
+ @Index()
91
+ @TableColumn({
92
+ type: TableColumnType.ObjectID,
93
+ required: true,
94
+ canReadOnRelationQuery: true,
95
+ title: "Project ID",
96
+ description: "ID of your OneUptime Project in which this object belongs",
97
+ })
98
+ @Column({
99
+ type: ColumnType.ObjectID,
100
+ nullable: false,
101
+ transformer: ObjectID.getDatabaseTransformer(),
102
+ })
103
+ public projectId?: ObjectID = undefined;
104
+
105
+ @ColumnAccessControl({
106
+ create: [],
107
+ read: [
108
+ Permission.ProjectOwner,
109
+ Permission.ProjectAdmin,
110
+ Permission.ProjectMember,
111
+ Permission.ReadStatusPageSCIMLog,
112
+ ],
113
+ update: [],
114
+ })
115
+ @TableColumn({
116
+ manyToOneRelationColumn: "statusPageId",
117
+ type: TableColumnType.Entity,
118
+ modelType: StatusPage,
119
+ title: "Status Page",
120
+ description: "Relation to Status Page Resource",
121
+ })
122
+ @ManyToOne(
123
+ () => {
124
+ return StatusPage;
125
+ },
126
+ {
127
+ eager: false,
128
+ nullable: true,
129
+ onDelete: "CASCADE",
130
+ orphanedRowAction: "nullify",
131
+ },
132
+ )
133
+ @JoinColumn({ name: "statusPageId" })
134
+ public statusPage?: StatusPage = undefined;
135
+
136
+ @ColumnAccessControl({
137
+ create: [],
138
+ read: [
139
+ Permission.ProjectOwner,
140
+ Permission.ProjectAdmin,
141
+ Permission.ProjectMember,
142
+ Permission.ReadStatusPageSCIMLog,
143
+ ],
144
+ update: [],
145
+ })
146
+ @Index()
147
+ @TableColumn({
148
+ type: TableColumnType.ObjectID,
149
+ required: true,
150
+ canReadOnRelationQuery: true,
151
+ title: "Status Page ID",
152
+ description: "ID of the Status Page",
153
+ })
154
+ @Column({
155
+ type: ColumnType.ObjectID,
156
+ nullable: false,
157
+ transformer: ObjectID.getDatabaseTransformer(),
158
+ })
159
+ public statusPageId?: ObjectID = undefined;
160
+
161
+ @ColumnAccessControl({
162
+ create: [],
163
+ read: [
164
+ Permission.ProjectOwner,
165
+ Permission.ProjectAdmin,
166
+ Permission.ProjectMember,
167
+ Permission.ReadStatusPageSCIMLog,
168
+ ],
169
+ update: [],
170
+ })
171
+ @TableColumn({
172
+ manyToOneRelationColumn: "statusPageScimId",
173
+ type: TableColumnType.Entity,
174
+ modelType: StatusPageSCIM,
175
+ title: "Status Page SCIM",
176
+ description:
177
+ "Relation to StatusPageSCIM Resource in which this log belongs",
178
+ })
179
+ @ManyToOne(
180
+ () => {
181
+ return StatusPageSCIM;
182
+ },
183
+ {
184
+ eager: false,
185
+ nullable: true,
186
+ onDelete: "CASCADE",
187
+ orphanedRowAction: "nullify",
188
+ },
189
+ )
190
+ @JoinColumn({ name: "statusPageScimId" })
191
+ public statusPageScim?: StatusPageSCIM = undefined;
192
+
193
+ @ColumnAccessControl({
194
+ create: [],
195
+ read: [
196
+ Permission.ProjectOwner,
197
+ Permission.ProjectAdmin,
198
+ Permission.ProjectMember,
199
+ Permission.ReadStatusPageSCIMLog,
200
+ ],
201
+ update: [],
202
+ })
203
+ @Index()
204
+ @TableColumn({
205
+ type: TableColumnType.ObjectID,
206
+ required: true,
207
+ canReadOnRelationQuery: true,
208
+ title: "Status Page SCIM ID",
209
+ description: "ID of your Status Page SCIM configuration",
210
+ })
211
+ @Column({
212
+ type: ColumnType.ObjectID,
213
+ nullable: false,
214
+ transformer: ObjectID.getDatabaseTransformer(),
215
+ })
216
+ public statusPageScimId?: ObjectID = undefined;
217
+
218
+ @ColumnAccessControl({
219
+ create: [],
220
+ read: [
221
+ Permission.ProjectOwner,
222
+ Permission.ProjectAdmin,
223
+ Permission.ProjectMember,
224
+ Permission.ReadStatusPageSCIMLog,
225
+ ],
226
+ update: [],
227
+ })
228
+ @TableColumn({
229
+ required: true,
230
+ type: TableColumnType.ShortText,
231
+ title: "Operation Type",
232
+ description:
233
+ "Type of SCIM operation (e.g., CreateUser, UpdateUser, DeleteUser, ListUsers, GetUser, BulkOperation)",
234
+ canReadOnRelationQuery: true,
235
+ })
236
+ @Column({
237
+ nullable: false,
238
+ type: ColumnType.ShortText,
239
+ length: ColumnLength.ShortText,
240
+ })
241
+ public operationType?: string = undefined;
242
+
243
+ @ColumnAccessControl({
244
+ create: [],
245
+ read: [
246
+ Permission.ProjectOwner,
247
+ Permission.ProjectAdmin,
248
+ Permission.ProjectMember,
249
+ Permission.ReadStatusPageSCIMLog,
250
+ ],
251
+ update: [],
252
+ })
253
+ @TableColumn({
254
+ required: true,
255
+ type: TableColumnType.ShortText,
256
+ title: "Status",
257
+ description: "Status of the SCIM operation",
258
+ canReadOnRelationQuery: true,
259
+ })
260
+ @Column({
261
+ nullable: false,
262
+ type: ColumnType.ShortText,
263
+ length: ColumnLength.ShortText,
264
+ })
265
+ public status?: SCIMLogStatus = undefined;
266
+
267
+ @ColumnAccessControl({
268
+ create: [],
269
+ read: [
270
+ Permission.ProjectOwner,
271
+ Permission.ProjectAdmin,
272
+ Permission.ProjectMember,
273
+ Permission.ReadStatusPageSCIMLog,
274
+ ],
275
+ update: [],
276
+ })
277
+ @TableColumn({
278
+ required: false,
279
+ type: TableColumnType.LongText,
280
+ title: "Status Message",
281
+ description: "Short error or status description",
282
+ canReadOnRelationQuery: false,
283
+ })
284
+ @Column({
285
+ nullable: true,
286
+ type: ColumnType.LongText,
287
+ length: ColumnLength.LongText,
288
+ })
289
+ public statusMessage?: string = undefined;
290
+
291
+ @ColumnAccessControl({
292
+ create: [],
293
+ read: [
294
+ Permission.ProjectOwner,
295
+ Permission.ProjectAdmin,
296
+ Permission.ProjectMember,
297
+ Permission.ReadStatusPageSCIMLog,
298
+ ],
299
+ update: [],
300
+ })
301
+ @TableColumn({
302
+ required: false,
303
+ type: TableColumnType.VeryLongText,
304
+ title: "Log Body",
305
+ description: "Detailed JSON with request/response data",
306
+ canReadOnRelationQuery: false,
307
+ })
308
+ @Column({
309
+ nullable: true,
310
+ type: ColumnType.VeryLongText,
311
+ })
312
+ public logBody?: string = undefined;
313
+
314
+ @ColumnAccessControl({
315
+ create: [],
316
+ read: [
317
+ Permission.ProjectOwner,
318
+ Permission.ProjectAdmin,
319
+ Permission.ProjectMember,
320
+ Permission.ReadStatusPageSCIMLog,
321
+ ],
322
+ update: [],
323
+ })
324
+ @TableColumn({
325
+ required: false,
326
+ type: TableColumnType.ShortText,
327
+ title: "HTTP Method",
328
+ description: "HTTP method used (GET, POST, PUT, PATCH, DELETE)",
329
+ canReadOnRelationQuery: true,
330
+ })
331
+ @Column({
332
+ nullable: true,
333
+ type: ColumnType.ShortText,
334
+ length: ColumnLength.ShortText,
335
+ })
336
+ public httpMethod?: string = undefined;
337
+
338
+ @ColumnAccessControl({
339
+ create: [],
340
+ read: [
341
+ Permission.ProjectOwner,
342
+ Permission.ProjectAdmin,
343
+ Permission.ProjectMember,
344
+ Permission.ReadStatusPageSCIMLog,
345
+ ],
346
+ update: [],
347
+ })
348
+ @TableColumn({
349
+ required: false,
350
+ type: TableColumnType.LongText,
351
+ title: "Request Path",
352
+ description: "The SCIM endpoint path",
353
+ canReadOnRelationQuery: false,
354
+ })
355
+ @Column({
356
+ nullable: true,
357
+ type: ColumnType.LongText,
358
+ length: ColumnLength.LongText,
359
+ })
360
+ public requestPath?: string = undefined;
361
+
362
+ @ColumnAccessControl({
363
+ create: [],
364
+ read: [
365
+ Permission.ProjectOwner,
366
+ Permission.ProjectAdmin,
367
+ Permission.ProjectMember,
368
+ Permission.ReadStatusPageSCIMLog,
369
+ ],
370
+ update: [],
371
+ })
372
+ @TableColumn({
373
+ required: false,
374
+ type: TableColumnType.Number,
375
+ title: "HTTP Status Code",
376
+ description: "Response HTTP status code",
377
+ canReadOnRelationQuery: true,
378
+ })
379
+ @Column({
380
+ nullable: true,
381
+ type: ColumnType.Number,
382
+ })
383
+ public httpStatusCode?: number = undefined;
384
+
385
+ @ColumnAccessControl({
386
+ create: [],
387
+ read: [
388
+ Permission.ProjectOwner,
389
+ Permission.ProjectAdmin,
390
+ Permission.ProjectMember,
391
+ Permission.ReadStatusPageSCIMLog,
392
+ ],
393
+ update: [],
394
+ })
395
+ @Index()
396
+ @TableColumn({
397
+ required: false,
398
+ type: TableColumnType.Email,
399
+ title: "Affected User Email",
400
+ description: "Email of the user affected by this operation",
401
+ canReadOnRelationQuery: true,
402
+ })
403
+ @Column({
404
+ nullable: true,
405
+ type: ColumnType.Email,
406
+ length: ColumnLength.Email,
407
+ })
408
+ public affectedUserEmail?: string = undefined;
409
+
410
+ @ColumnAccessControl({
411
+ create: [],
412
+ read: [],
413
+ update: [],
414
+ })
415
+ @TableColumn({
416
+ manyToOneRelationColumn: "deletedByUserId",
417
+ type: TableColumnType.Entity,
418
+ title: "Deleted by User",
419
+ modelType: User,
420
+ description:
421
+ "Relation to User who deleted this object (if this object was deleted by a User)",
422
+ })
423
+ @ManyToOne(
424
+ () => {
425
+ return User;
426
+ },
427
+ {
428
+ cascade: false,
429
+ eager: false,
430
+ nullable: true,
431
+ onDelete: "SET NULL",
432
+ orphanedRowAction: "nullify",
433
+ },
434
+ )
435
+ @JoinColumn({ name: "deletedByUserId" })
436
+ public deletedByUser?: User = undefined;
437
+
438
+ @ColumnAccessControl({
439
+ create: [],
440
+ read: [],
441
+ update: [],
442
+ })
443
+ @TableColumn({
444
+ type: TableColumnType.ObjectID,
445
+ title: "Deleted by User ID",
446
+ description:
447
+ "User ID who deleted this object (if this object was deleted by a User)",
448
+ })
449
+ @Column({
450
+ type: ColumnType.ObjectID,
451
+ nullable: true,
452
+ transformer: ObjectID.getDatabaseTransformer(),
453
+ })
454
+ public deletedByUserId?: ObjectID = undefined;
455
+ }
@@ -471,21 +471,6 @@ class User extends UserModel {
471
471
  })
472
472
  public isBlocked?: boolean = undefined;
473
473
 
474
- @ColumnAccessControl({
475
- create: [],
476
- read: [Permission.CurrentUser],
477
-
478
- update: [Permission.CurrentUser],
479
- })
480
- @TableColumn({ type: TableColumnType.Phone })
481
- @Column({
482
- type: ColumnType.Phone,
483
- length: ColumnLength.Phone,
484
- nullable: true,
485
- unique: false,
486
- })
487
- public alertPhoneNumber?: Phone = undefined;
488
-
489
474
  @ColumnAccessControl({
490
475
  create: [],
491
476
  read: [],