import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm'; export enum InspectionFindingVersionEvent { CREATED = 'CREATED', UPDATED = 'UPDATED', FOLLOW_UP_UPDATED = 'FOLLOW_UP_UPDATED', VERIFICATION_RECORDED = 'VERIFICATION_RECORDED', } @Entity({ name: 'inspection_finding_versions' }) @Index('uq_inspection_finding_versions_number', ['findingId', 'versionNumber'], { unique: true }) @Index('idx_inspection_finding_versions_created_at', ['createdAt']) export class InspectionFindingVersion { @PrimaryGeneratedColumn('uuid') id!: string; @Column({ name: 'finding_id', type: 'uuid' }) findingId!: string; @Column({ name: 'version_number', type: 'integer' }) versionNumber!: number; @Column({ type: 'varchar', length: 32 }) event!: InspectionFindingVersionEvent; @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; }