import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; import { equipment } from "./equipment/equipment"; import { wearable } from "./wearable/wearable"; import { vehicle } from "./vehicle/vehicle"; import { maintenance } from "./maintenance"; @Entity() export class damageReport { @PrimaryGeneratedColumn("uuid") id: string; @CreateDateColumn() reportedAt: Date; @Column({ type: "varchar", length: 255 }) status: string; @Column({ type: "boolean", default: false }) done: boolean; @Column({ type: "text" }) description: string; @Column({ type: "varchar", length: 255 }) reportedBy: string; @Column({ type: "int", default: 0 }) imageCount: number; @Column({ nullable: true, default: null }) equipmentId?: string; @Column({ nullable: true, default: null }) maintenanceId?: string; @Column({ nullable: true, default: null }) vehicleId?: string; @Column({ nullable: true, default: null }) wearableId?: string; @ManyToOne(() => equipment, { nullable: true, onDelete: "CASCADE", onUpdate: "RESTRICT", }) equipment?: equipment; @ManyToOne(() => vehicle, { nullable: true, onDelete: "CASCADE", onUpdate: "RESTRICT", }) vehicle?: vehicle; @ManyToOne(() => wearable, { nullable: true, onDelete: "CASCADE", onUpdate: "RESTRICT", }) wearable?: wearable; @ManyToOne(() => maintenance, { nullable: true, onDelete: "SET NULL", onUpdate: "RESTRICT", }) maintenance?: maintenance; }