import { Column, Entity, PrimaryColumn } from 'typeorm'; export enum InspectionActUploadMode { IMMEDIATE = 'IMMEDIATE', DEFERRED = 'DEFERRED', } @Entity({ name: 'inspection_act_closures' }) export class InspectionActClosure { @PrimaryColumn({ name: 'act_id', type: 'uuid' }) actId!: string; @Column({ name: 'schema_version', type: 'varchar', length: 40 }) schemaVersion!: string; @Column({ name: 'prepared_snapshot', type: 'jsonb' }) preparedSnapshot!: Record; @Column({ name: 'prepared_sha256', type: 'char', length: 64 }) preparedSha256!: string; @Column({ name: 'prepared_at', type: 'timestamptz' }) preparedAt!: Date; @Column({ name: 'prepared_by', type: 'uuid' }) preparedBy!: string; @Column({ name: 'final_snapshot', type: 'jsonb', nullable: true }) finalSnapshot!: Record | null; @Column({ name: 'final_sha256', type: 'char', length: 64, nullable: true }) finalSha256!: string | null; @Column({ name: 'device_closed_at', type: 'timestamptz', nullable: true }) deviceClosedAt!: Date | null; @Column({ name: 'server_closed_at', type: 'timestamptz', nullable: true }) serverClosedAt!: Date | null; @Column({ name: 'upload_mode', type: 'varchar', length: 20, nullable: true }) uploadMode!: InspectionActUploadMode | null; @Column({ name: 'closed_by', type: 'uuid', nullable: true }) closedBy!: string | null; @Column({ name: 'created_at', type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) createdAt!: Date; @Column({ name: 'updated_at', type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) updatedAt!: Date; }