import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm'; export enum SurveyReportVersionEvent { SUBMITTED = 'SUBMITTED', APPROVED = 'APPROVED', REJECTED = 'REJECTED', } @Entity({ name: 'survey_target_report_versions' }) @Index('uq_survey_target_report_versions_number', ['reportId', 'versionNumber'], { unique: true }) @Index('idx_survey_target_report_versions_created_at', ['createdAt']) export class SurveyTargetReportVersion { @PrimaryGeneratedColumn('uuid') id!: string; @Column({ name: 'report_id', type: 'uuid' }) reportId!: string; @Column({ name: 'version_number', type: 'integer' }) versionNumber!: number; @Column({ type: 'varchar', length: 24 }) event!: SurveyReportVersionEvent; @Column({ type: 'jsonb' }) snapshot!: Record; @Column({ name: 'actor_user_id', type: 'uuid', nullable: true }) actorUserId!: string | null; @Column({ name: 'actor_username', type: 'varchar', length: 80, nullable: true }) actorUsername!: string | null; @Column({ name: 'created_at', type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) createdAt!: Date; }