import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  UpdateDateColumn,
} from 'typeorm';

/**
 * Quick Reference content (section 34). Categories such as the Anatomy Quick
 * Map and the Procedure Checklist are data, not code, so new reference
 * material never requires a mobile release.
 */
@Entity({ name: 'quick_reference_items' })
export class QuickReferenceItem {
  @PrimaryGeneratedColumn({ type: 'bigint' })
  id!: number;

  @Column({ type: 'varchar', length: 255, unique: true })
  slug!: string;

  @Column({ type: 'varchar', length: 128 })
  category!: string;

  @Column({ type: 'varchar', length: 255 })
  title!: string;

  @Column({ type: 'text', nullable: true })
  summary?: string;

  /** Same content-block shape the activity renderer consumes. */
  @Column({ type: 'json', nullable: true })
  blocks?: Record<string, any>[];

  @Column({ name: 'order_index', type: 'int', default: 0 })
  orderIndex!: number;

  @Column({
    type: 'enum',
    enum: ['DRAFT', 'IN_REVIEW', 'PUBLISHED', 'ARCHIVED'],
    default: 'DRAFT',
  })
  status!: string;

  @CreateDateColumn({ name: 'created_at' })
  createdAt!: Date;

  @UpdateDateColumn({ name: 'updated_at' })
  updatedAt!: Date;
}
