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

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

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

  @Column({ type: 'varchar', name: 'land_owner', nullable: true }) landOwner?: string;
  @Column({ type: 'varchar', nullable: true }) relation?: string;
  @Column({ type: 'varchar', nullable: true }) name?: string;
  @Column({ type: 'varchar', name: 'name_en', nullable: true }) nameEn?: string;
  @Column({ type: 'varchar', name: 'dob', length: 20, nullable: true }) dob?: string;
  @Column({ type: 'varchar', name: 'dob_bs', length: 20, nullable: true }) dobBs?: string;
  @Column({ type: 'varchar', name: 'contact_number', nullable: true }) contactNumber?: string;
  @Column({ type: 'varchar', nullable: true }) gender?: string;
  @Column({ type: 'varchar', name: 'marital_status', nullable: true }) maritalStatus?: string;
  @Column({ type: 'varchar', nullable: true }) age?: string;
  @Column({ type: 'varchar', name: 'second_generation', nullable: true }) secondGeneration?: string;
  @Column({ type: 'varchar', name: 'second_generation_name', nullable: true }) secondGenerationName?: string;
  @Column({ type: 'varchar', name: 'third_generation', nullable: true }) thirdGeneration?: string;
  @Column({ type: 'varchar', name: 'third_generation_name', nullable: true }) thirdGenerationName?: string;
  @Column({ type: 'varchar', name: 'spouse_name', nullable: true }) spouseName?: string;
  @Column({ type: 'varchar', name: 'citizenship_number', nullable: true }) citizenshipNumber?: string;
  @Column({ type: 'varchar', name: 'citizenship_issue_date', length: 20, nullable: true }) citizenshipIssueDate?: string;
  @Column({ type: 'varchar', name: 'citizenship_issue_date_bs', length: 20, nullable: true }) citizenshipIssueDateBs?: string;
  @Column({ type: 'varchar', name: 'citizenship_issue_district', nullable: true }) citizenshipIssueDistrict?: string;
  @Column({ type: 'varchar', name: 'former_address', nullable: true }) formerAddress?: string;
  @Column({ type: 'varchar', name: 'p_province', nullable: true }) pProvince?: string;
  @Column({ type: 'varchar', name: 'p_district', nullable: true }) pDistrict?: string;
  @Column({ type: 'varchar', name: 'p_localgovt', nullable: true }) pLocalgovt?: string;
  @Column({ type: 'varchar', name: 'p_ward', nullable: true }) pWard?: string;
  @Column({ type: 'varchar', name: 'p_tole', nullable: true }) pTole?: string;
  @Column({ type: 'varchar', name: 't_province', nullable: true }) tProvince?: string;
  @Column({ type: 'varchar', name: 't_district', nullable: true }) tDistrict?: string;
  @Column({ type: 'varchar', name: 't_localgovt', nullable: true }) tLocalgovt?: string;
  @Column({ type: 'varchar', name: 't_ward', nullable: true }) tWard?: string;
  @Column({ type: 'varchar', name: 't_tole', nullable: true }) tTole?: string;
  @Column({ type: 'varchar', name: 'partisal_amount', nullable: true }) partisalAmount?: string;
  @Column({ type: 'varchar', name: 'partisal_amount_in_words', nullable: true }) partisalAmountInWords?: 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', name: 'created_by', nullable: true }) createdBy?: string;
  @Column({ type: 'varchar', name: 'updated_by', nullable: true }) updatedBy?: string;
  @CreateDateColumn({ name: 'created_at' }) createdAt!: Date;
  @UpdateDateColumn({ name: 'updated_at' }) updatedAt!: Date;
  @DeleteDateColumn({ name: 'deleted_at' }) deletedAt?: Date;
}
