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

@Entity('date_ivt')
export class DateIvt {
  @PrimaryGeneratedColumn()
  id: number;

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

  @Column({ type: 'int' })
  questionnaire_id: number;

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

  @Column({ type: 'varchar', length: 100 })
  first_name: string;

  @Column({ type: 'date' })
  next_injection_date: Date;

  @Column({ type: 'boolean', nullable: true })
  attentedInjection: boolean;

  @Column({ type: 'int', nullable: true })
  injectionExperience: number; // 1 à 5

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

  @CreateDateColumn()
  created_at: Date;

  @UpdateDateColumn()
  updated_at: Date;

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