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

@Entity({ name: 'application_files' })
export class ApplicationFile {
  @PrimaryGeneratedColumn('uuid') id!: string;

  @Column({ type: 'varchar', name: 'application_id' }) applicationId!: string;

  @Column({ type: 'varchar', nullable: true }) photo?: string;
  @Column({ type: 'varchar', name: 'citizenship_front', nullable: true }) citizenshipFront?: string;
  @Column({ type: 'varchar', name: 'citizenship_back', nullable: true }) citizenshipBack?: string;
  @Column({ type: 'varchar', nullable: true }) signature?: string;
  @Column({ type: 'varchar', nullable: true }) lalpurja?: string;
  @Column({ type: 'varchar', nullable: true }) charkilla?: string;
  @Column({ type: 'varchar', name: 'tiro_rasid', nullable: true }) tiroRasid?: string;
  @Column({ type: 'varchar', name: 'rokka_patra', nullable: true }) rokkaPatra?: string;
  @Column({ type: 'varchar', name: 'blue_book', nullable: true }) blueBook?: string;
  @Column({ type: 'varchar', name: 'route_permit', nullable: true }) routePermit?: string;
  @Column({ type: 'varchar', name: 'muddati_rasid', nullable: true }) muddatiRasid?: string;
  @Column({ type: 'varchar', name: 'business_registration_card', nullable: true }) businessRegistrationCard?: string;
  @Column({ type: 'varchar', name: 'share_certificate', nullable: true }) shareCertificate?: string;
  @Column({ type: 'varchar', name: 'pan_certificate', nullable: true }) panCertificate?: string;
  @Column({ type: 'varchar', name: 'lalpurja_optional', nullable: true }) lalpurjaOptional?: string;
  @Column({ type: 'varchar', name: 'charkilla_optional', nullable: true }) charkillsOptional?: string;
  @Column({ type: 'varchar', name: 'tiro_rasid_optional', nullable: true }) tiroRasidOptional?: string;
  @Column({ type: 'varchar', name: 'rokka_patra_optional', nullable: true }) rokkaPatraOptional?: string;
  @Column({ type: 'varchar', name: 'pan_card_photo', nullable: true }) panCardPhoto?: string;
  @Column({ type: 'varchar', name: 'nid_card_photo', nullable: true }) nidCardPhoto?: string;
  @Column({ type: 'varchar', name: 'evaluation_report', nullable: true }) evaluationReport?: string;
  @Column({ type: 'varchar', name: 'other_document_1', nullable: true }) otherDocument1?: string;
  @Column({ type: 'varchar', name: 'other_document_2', nullable: true }) otherDocument2?: string;
  @Column({ type: 'varchar', name: 'other_document_3', nullable: true }) otherDocument3?: string;

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