mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-01-16 23:00:51 +00:00
- Updated example strings in various database model files to use consistent line breaks for improved readability. - Ensured that all example properties are formatted uniformly across models, enhancing maintainability and clarity.
908 lines
23 KiB
TypeScript
908 lines
23 KiB
TypeScript
import Project from "./Project";
|
|
import Incident from "./Incident";
|
|
import Alert from "./Alert";
|
|
import ScheduledMaintenance from "./ScheduledMaintenance";
|
|
import StatusPage from "./StatusPage";
|
|
import StatusPageAnnouncement from "./StatusPageAnnouncement";
|
|
import User from "./User";
|
|
import OnCallDutyPolicy from "./OnCallDutyPolicy";
|
|
import OnCallDutyPolicyEscalationRule from "./OnCallDutyPolicyEscalationRule";
|
|
import OnCallDutyPolicySchedule from "./OnCallDutyPolicySchedule";
|
|
import Team from "./Team";
|
|
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
import Route from "../../Types/API/Route";
|
|
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
import ColumnType from "../../Types/Database/ColumnType";
|
|
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
import EnableWorkflow from "../../Types/Database/EnableWorkflow";
|
|
import TableColumn from "../../Types/Database/TableColumn";
|
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
import IconProp from "../../Types/Icon/IconProp";
|
|
import ObjectID from "../../Types/ObjectID";
|
|
import Permission from "../../Types/Permission";
|
|
import PushStatus from "../../Types/PushNotification/PushStatus";
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
|
@EnableDocumentation()
|
|
@TenantColumn("projectId")
|
|
@TableAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
delete: [],
|
|
update: [],
|
|
})
|
|
@CrudApiEndpoint(new Route("/push-notification-log"))
|
|
@Entity({
|
|
name: "PushNotificationLog",
|
|
})
|
|
@EnableWorkflow({
|
|
create: true,
|
|
delete: false,
|
|
update: false,
|
|
})
|
|
@TableMetadata({
|
|
tableName: "PushNotificationLog",
|
|
singularName: "Push Notification Log",
|
|
pluralName: "Push Notification Logs",
|
|
icon: IconProp.Bell,
|
|
tableDescription:
|
|
"Logs of all the Push Notifications sent out to all users and subscribers for this project.",
|
|
})
|
|
export default class PushNotificationLog extends BaseModel {
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "projectId",
|
|
type: TableColumnType.Entity,
|
|
modelType: Project,
|
|
title: "Project",
|
|
description: "Relation to Project Resource in which this object belongs",
|
|
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return Project;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "projectId" })
|
|
public project?: Project = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: true,
|
|
canReadOnRelationQuery: true,
|
|
title: "Project ID",
|
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: false,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public projectId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
type: TableColumnType.LongText,
|
|
title: "Title",
|
|
description: "Title of the push notification",
|
|
canReadOnRelationQuery: false,
|
|
example: "Alert: High CPU Usage Detected",
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
type: ColumnType.LongText,
|
|
length: ColumnLength.LongText,
|
|
})
|
|
public title?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.VeryLongText,
|
|
title: "Body",
|
|
description: "Body of the push notification",
|
|
canReadOnRelationQuery: false,
|
|
example:
|
|
"Your server 'web-server-01' has exceeded 90% CPU usage for the past 5 minutes.",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.VeryLongText,
|
|
})
|
|
public body?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.ShortText,
|
|
title: "Device Type",
|
|
description: "Type of device this was sent to (e.g., web)",
|
|
canReadOnRelationQuery: false,
|
|
example: "web",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.ShortText,
|
|
length: ColumnLength.ShortText,
|
|
})
|
|
public deviceType?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.ShortText,
|
|
title: "Device Name",
|
|
description: "Name of the device this was sent to",
|
|
canReadOnRelationQuery: false,
|
|
example: "Chrome on MacOS",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.ShortText,
|
|
length: ColumnLength.ShortText,
|
|
})
|
|
public deviceName?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.LongText,
|
|
title: "Status Message",
|
|
description: "Status Message (if any)",
|
|
canReadOnRelationQuery: false,
|
|
example: "Notification sent successfully",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.LongText,
|
|
length: ColumnLength.LongText,
|
|
})
|
|
public statusMessage?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
type: TableColumnType.ShortText,
|
|
title: "Status",
|
|
description: "Status of the push notification",
|
|
canReadOnRelationQuery: false,
|
|
example: "Sent",
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
type: ColumnType.ShortText,
|
|
length: ColumnLength.ShortText,
|
|
})
|
|
public status?: PushStatus = undefined;
|
|
|
|
// Relations to resources that triggered this push notification (nullable)
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "incidentId",
|
|
type: TableColumnType.Entity,
|
|
modelType: Incident,
|
|
title: "Incident",
|
|
description: "Incident associated with this Push (if any)",
|
|
example: "b2c3d4e5-6789-01bc-def2-234567890abc",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return Incident;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "incidentId" })
|
|
public incident?: Incident = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "Incident ID",
|
|
description: "ID of Incident associated with this Push (if any)",
|
|
example: "b2c3d4e5-6789-01bc-def2-234567890abc",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public incidentId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "userId",
|
|
type: TableColumnType.Entity,
|
|
modelType: User,
|
|
title: "User",
|
|
description: "User who initiated this Push notification (if any)",
|
|
example: "c3d4e5f6-789a-12cd-ef34-3456789abcde",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "userId" })
|
|
public user?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "User ID",
|
|
description: "ID of User who initiated this Push notification (if any)",
|
|
example: "c3d4e5f6-789a-12cd-ef34-3456789abcde",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public userId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "alertId",
|
|
type: TableColumnType.Entity,
|
|
modelType: Alert,
|
|
title: "Alert",
|
|
description: "Alert associated with this Push (if any)",
|
|
example: "d4e5f6a7-89ab-23de-f456-456789abcdef",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return Alert;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "alertId" })
|
|
public alert?: Alert = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "Alert ID",
|
|
description: "ID of Alert associated with this Push (if any)",
|
|
example: "d4e5f6a7-89ab-23de-f456-456789abcdef",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public alertId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "scheduledMaintenanceId",
|
|
type: TableColumnType.Entity,
|
|
modelType: ScheduledMaintenance,
|
|
title: "Scheduled Maintenance",
|
|
description: "Scheduled Maintenance associated with this Push (if any)",
|
|
example: "e5f6a7b8-9abc-34ef-5678-56789abcdef0",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return ScheduledMaintenance;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "scheduledMaintenanceId" })
|
|
public scheduledMaintenance?: ScheduledMaintenance = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "Scheduled Maintenance ID",
|
|
description:
|
|
"ID of Scheduled Maintenance associated with this Push (if any)",
|
|
example: "e5f6a7b8-9abc-34ef-5678-56789abcdef0",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public scheduledMaintenanceId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "statusPageId",
|
|
type: TableColumnType.Entity,
|
|
modelType: StatusPage,
|
|
title: "Status Page",
|
|
description: "Status Page associated with this Push (if any)",
|
|
example: "f6a7b8c9-abcd-45ef-6789-6789abcdef01",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return StatusPage;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "statusPageId" })
|
|
public statusPage?: StatusPage = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "Status Page ID",
|
|
description: "ID of Status Page associated with this Push (if any)",
|
|
example: "f6a7b8c9-abcd-45ef-6789-6789abcdef01",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public statusPageId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "statusPageAnnouncementId",
|
|
type: TableColumnType.Entity,
|
|
modelType: StatusPageAnnouncement,
|
|
title: "Status Page Announcement",
|
|
description: "Status Page Announcement associated with this Push (if any)",
|
|
example: "a7b8c9d0-bcde-56f0-789a-789abcdef012",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return StatusPageAnnouncement;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "statusPageAnnouncementId" })
|
|
public statusPageAnnouncement?: StatusPageAnnouncement = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "Status Page Announcement ID",
|
|
description:
|
|
"ID of Status Page Announcement associated with this Push (if any)",
|
|
example: "a7b8c9d0-bcde-56f0-789a-789abcdef012",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public statusPageAnnouncementId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "onCallDutyPolicyId",
|
|
type: TableColumnType.Entity,
|
|
modelType: OnCallDutyPolicy,
|
|
title: "On-Call Duty Policy",
|
|
description:
|
|
"On-Call Duty Policy associated with this Push Notification (if any)",
|
|
example: "b8c9d0e1-cdef-67f1-89ab-89abcdef0123",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return OnCallDutyPolicy;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "onCallDutyPolicyId" })
|
|
public onCallDutyPolicy?: OnCallDutyPolicy = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "On-Call Duty Policy ID",
|
|
description:
|
|
"ID of On-Call Duty Policy associated with this Push Notification (if any)",
|
|
example: "b8c9d0e1-cdef-67f1-89ab-89abcdef0123",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public onCallDutyPolicyId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "onCallDutyPolicyEscalationRuleId",
|
|
type: TableColumnType.Entity,
|
|
modelType: OnCallDutyPolicyEscalationRule,
|
|
title: "On-Call Duty Policy Escalation Rule",
|
|
description:
|
|
"On-Call Duty Policy Escalation Rule associated with this Push Notification (if any)",
|
|
example: "c9d0e1f2-def0-78f2-9abc-9abcdef01234",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return OnCallDutyPolicyEscalationRule;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "onCallDutyPolicyEscalationRuleId" })
|
|
public onCallDutyPolicyEscalationRule?: OnCallDutyPolicyEscalationRule =
|
|
undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "On-Call Duty Policy Escalation Rule ID",
|
|
description:
|
|
"ID of On-Call Duty Policy Escalation Rule associated with this Push Notification (if any)",
|
|
example: "c9d0e1f2-def0-78f2-9abc-9abcdef01234",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public onCallDutyPolicyEscalationRuleId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "onCallDutyPolicyScheduleId",
|
|
type: TableColumnType.Entity,
|
|
modelType: OnCallDutyPolicySchedule,
|
|
title: "On-Call Duty Policy Schedule",
|
|
description:
|
|
"On-Call Duty Policy Schedule associated with this Push Notification (if any)",
|
|
example: "d0e1f2a3-ef01-89f3-abcd-abcdef012345",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return OnCallDutyPolicySchedule;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "onCallDutyPolicyScheduleId" })
|
|
public onCallDutyPolicySchedule?: OnCallDutyPolicySchedule = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "On-Call Duty Policy Schedule ID",
|
|
description:
|
|
"ID of On-Call Duty Policy Schedule associated with this Push Notification (if any)",
|
|
example: "d0e1f2a3-ef01-89f3-abcd-abcdef012345",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public onCallDutyPolicyScheduleId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "teamId",
|
|
type: TableColumnType.Entity,
|
|
modelType: Team,
|
|
title: "Team",
|
|
description: "Team associated with this Push Notification (if any)",
|
|
example: "e1f2a3b4-f012-9af4-bcde-bcdef0123456",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return Team;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "teamId" })
|
|
public team?: Team = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadPushLog,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: false,
|
|
canReadOnRelationQuery: true,
|
|
title: "Team ID",
|
|
description: "ID of Team associated with this Push Notification (if any)",
|
|
example: "e1f2a3b4-f012-9af4-bcde-bcdef0123456",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public teamId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "deletedByUserId",
|
|
type: TableColumnType.Entity,
|
|
title: "Deleted by User",
|
|
modelType: User,
|
|
description:
|
|
"Relation to User who deleted this object (if this object was deleted by a User)",
|
|
example: "f2a3b4c5-0123-abf5-cdef-cdef01234567",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
cascade: false,
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "SET NULL",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "deletedByUserId" })
|
|
public deletedByUser?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [],
|
|
read: [],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Deleted by User ID",
|
|
description:
|
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
example: "f2a3b4c5-0123-abf5-cdef-cdef01234567",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public deletedByUserId?: ObjectID = undefined;
|
|
}
|