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

@Entity('questionnaire_partial_submission')
export class QuestionnairePartialSubmission {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ type: 'uuid', unique: true })
  uuid: string;

  @Column({ type: 'varchar', length: 50, unique: true })
  phone_number: string;

  @Column({ type: 'jsonb', default: {} })
  data: Record<string, any>;

  @Column({ type: 'int', default: 1 })
  current_step: number;

  @Column({ type: 'boolean', default: false })
  is_completed: boolean;

  @Column({ type: 'varchar', length: 150, default: '' })
  center: string;

  @CreateDateColumn()
  created_at: Date;

  @UpdateDateColumn()
  updated_at: Date;

  @BeforeInsert()
  generateUuid(): void {
    if (!this.uuid) {
      this.uuid = randomUUID();
    }
  }
}
