import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm';

@Entity('customer')
export class Customer extends BaseEntity {
  @PrimaryGeneratedColumn({
    comment: 'the unique identifier',
  })
  idCustomer: number;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Customer_Code: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Contact_No: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  First_Name: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  Last_Name: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  Email: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  Password: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  NIC: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  DOB: string;
  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Province: string;
  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  District: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  City: string;

  @Column({
    type: 'varchar',
    length: 945,
    nullable: false,
  })
  Street_Address: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  PIN_Code: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  Registered_Device: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
  })
  Joined_Date: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  Status: string;

  @Column({
    type: 'varchar',
    length: 945,
    nullable: false,
  })
  Salary_Slip_Path: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  Salary_Slip_Verification_Status: string;

  @Column({
    type: 'varchar',
    length: 945,
    nullable: true,
  })
  NIC_Front_Path: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  NIC_Front_Verification_Status: string;

  @Column({
    type: 'varchar',
    length: 945,
    nullable: true,
  })
  NIC_Back_Path: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  NIC_Back_Verification_Status: string;

  @Column({
    type: 'varchar',
    length: 945,
    nullable: true,
  })
  Utility_Bill_Path: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  Utility_Bill_Verification_Status: string;
  @Column({
    type: 'varchar',
    length: 945,
    nullable: true,
  })
  Photo_Path: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
    default: '0',
  })
  Photo_Verification_Status: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Credit_Limit: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  Flag_Status: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: false,
    default: '0',
  })
  Freeze_Status: string;
  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  OTP: string;
  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  OTP_Time: string;
  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Pro_Status: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Referral_Code: string;

  @Column({
    type: 'varchar',
    length: 45,
    nullable: true,
  })
  Current_mode: string;
}
