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

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

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

  @Column({ type: 'varchar', nullable: true }) relation?: string;
  @Column({ type: 'varchar', nullable: true }) name?: string;
  @Column({ type: 'varchar', nullable: true }) age?: string;
  @Column({ type: 'varchar', nullable: true }) gender?: string;
  @Column({ type: 'varchar', nullable: true }) province?: string;
  @Column({ type: 'varchar', nullable: true }) district?: string;
  @Column({ type: 'varchar', nullable: true }) localgovt?: string;
  @Column({ type: 'varchar', nullable: true }) ward?: string;
  @Column({ type: 'varchar', nullable: true }) tole?: string;
  @Column({ type: 'varchar', name: 'contact_number', nullable: true }) contactNumber?: 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', nullable: true }) occupation?: string;
  @Column({ type: 'varchar', name: 'annual_income', nullable: true }) annualIncome?: string;
  @Column({ type: 'varchar', name: 'share_count', nullable: true }) shareCount?: string;
  @Column({ type: 'varchar', name: 'share_amount', nullable: true }) shareAmount?: string;
  @Column({ type: 'varchar', name: 'collateral_amount', nullable: true }) collateralAmount?: 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;
}
