import {
  Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, CreateDateColumn, UpdateDateColumn, Unique,
} from 'typeorm';
import { AuditReport } from './audit-report.entity';

/** Free-text blocks: org_brief, audit_brief, objective, criteria, prev_nc, effectiveness, ... */
@Entity({ name: 'audit_report_sections' })
@Unique('uq_report_section', ['report_id', 'key'])
export class AuditReportSection {
  @PrimaryGeneratedColumn() id: number;

  @Column({ type: 'int' }) report_id: number;
  @ManyToOne(() => AuditReport, (r) => r.sections, { onDelete: 'CASCADE' })
  @JoinColumn({ name: 'report_id' })
  report: AuditReport;

  @Column({ name: 'key', type: 'varchar', length: 60 }) key: string;
  @Column({ type: 'mediumtext', nullable: true }) body: string | null;

  @CreateDateColumn() created_at: Date;
  @UpdateDateColumn() updated_at: Date;
}
