import { Column, Entity, ManyToOne, OneToMany } from "typeorm"; import { TicketCategory } from "./ticket-category.entity"; import { TicketMessage } from "./ticket-message.entity"; import { BaseEntity } from "../../../common/entities/base.entity"; import { DanakService } from "../../danak-services/entities/danak-service.entity"; import { User } from "../../users/entities/user.entity"; import { TicketPriority } from "../enums/ticket-priority.enum"; import { TicketStatus } from "../enums/ticket-status.enum"; @Entity() export class Ticket extends BaseEntity { @Column({ type: "int", generated: "identity", insert: false }) numericId: number; // @Column({ type: "varchar", length: 150, nullable: false }) // title: string; @Column({ type: "varchar", length: 150, nullable: false }) subject: string; @Column({ type: "enum", enum: TicketStatus, default: TicketStatus.PENDING }) status: TicketStatus; @Column({ type: "enum", enum: TicketPriority, nullable: false }) priority: TicketPriority; @ManyToOne(() => DanakService, (danakService) => danakService.tickets, { onDelete: "RESTRICT", nullable: true }) danakService: DanakService | null; @ManyToOne(() => User, (user) => user.tickets, { nullable: true }) assignedTo: User; @ManyToOne(() => User, (user) => user.tickets, { onDelete: "CASCADE", nullable: false }) user: User; @ManyToOne(() => TicketCategory, (category) => category.tickets, { onDelete: "RESTRICT", nullable: false }) category: TicketCategory; @OneToMany(() => TicketMessage, (message) => message.ticket, { cascade: true }) messages: TicketMessage[]; }