import { Column, Entity, JoinColumn, JoinTable, ManyToMany, ManyToOne, PrimaryGeneratedColumn, } from "typeorm"; import { Master, Partner } from ".."; @Entity("master_notification", { comment: "Tabla creada para las notificaciones del master (administrador) de la plataforma.", }) export class MasterNotification { @PrimaryGeneratedColumn({ type: "int", comment: "ID único para cada notificación", }) id: number; @ManyToOne(() => Master, (master) => master.master_notifications, { onDelete: "CASCADE", onUpdate: "NO ACTION", nullable: true, }) @JoinColumn({ name: "master" }) master: Master | null; @ManyToOne(() => Partner, (partner) => partner.partner_notifications, { onDelete: "CASCADE", onUpdate: "NO ACTION", nullable: true, }) @JoinColumn({ name: "partner" }) partner: Partner | null; @Column({ type: "varchar", length: 200, comment: "Nombre de la notificación.", }) name: string; @Column({ type: "varchar", length: 400, nullable: true, default: null, comment: "Descripción de la notificación.", }) description: string | null; @Column({ type: "json", nullable: true, default: null, comment: "Configuración adicional de la notificación, como enlaces, qué hace después de darle click...", }) settings: any | null; @Column({ default: 1, type: "int", width: 1, comment: "Estado de la notificación: \r\n0. Inactiva. \r\n1. Activa.\r\n2. Reasignada.", }) status: number; @Column({ type: "datetime", comment: "Fecha de creación de la notificación.", default: () => "CURRENT_TIMESTAMP", }) created: Date; @ManyToMany(() => Master, (master) => master.masters_to_notification) @JoinTable({ name: "master_to_notification", joinColumn: { name: "master_notification", referencedColumnName: "id", }, inverseJoinColumn: { name: "master", referencedColumnName: "id", }, }) master_to_notifications: Master[]; }