import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, } from 'typeorm'; import { Event } from './event.entity'; @Entity('event_exceptions') export class EventException { @PrimaryGeneratedColumn({ type: 'bigint' }) id: number; @Column({ name: 'original_start_time', type: 'timestamptz' }) originalStartTime: Date; @Column({ name: 'is_cancelled', type: 'boolean', default: false }) isCancelled: boolean; @Column({ name: 'new_start_time', type: 'timestamptz', nullable: true }) newStartTime: Date; @Column({ name: 'new_end_time', type: 'timestamptz', nullable: true }) newEndTime: Date; @Column({ name: 'title', type: 'varchar', length: 255, nullable: true }) title: string; @Column({ name: 'description', type: 'text', nullable: true }) description: string; @CreateDateColumn({ name: 'created_at', type: 'timestamp' }) createdAt: Date; // --- Relationships --- @Column({ name: 'event_id', type: 'bigint' }) eventId: number; @ManyToOne(() => Event, (event) => event.exceptions, { onDelete: 'CASCADE', // If the parent event is deleted, delete its exceptions }) @JoinColumn({ name: 'event_id' }) event: Event; }