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

@Entity({ name: 'old_credit_analyses' })
export class OldCreditAnalysis {
  @PrimaryGeneratedColumn('uuid') id!: string;
  @Column({ type: 'varchar', nullable: true }) applicationId?: string;
  @Column({ type: 'varchar', nullable: true }) officeId?: string;
  @Column({ type: 'varchar', nullable: true }) userId?: string;
  @Column({ type: 'varchar', nullable: true }) memberName?: string;
  // Capacity (क्षमता)
  @Column({ type: 'varchar', nullable: true }) permanentProfession?: string;
  @Column({ type: 'varchar', nullable: true }) incomeRegularity?: string;
  @Column({ type: 'varchar', nullable: true }) incomeLoanPeriodCoordination?: string;
  @Column({ type: 'varchar', nullable: true }) businessLoanPeriodCoordination?: string;
  @Column({ type: 'varchar', nullable: true }) utilityOfLoan?: string;
  @Column({ type: 'varchar', nullable: true }) loanUtilizationEarnings?: string;
  @Column({ type: 'varchar', nullable: true }) economicGrowth?: string;
  @Column({ type: 'varchar', nullable: true }) businessMarketCondition?: string;
  @Column({ type: 'varchar', nullable: true }) otherSectorSituation?: string;
  @Column({ type: 'varchar', nullable: true }) selfSaving?: string;
  @Column({ type: 'varchar', nullable: true }) capacityTotal?: string;
  // Character (चरित्र)
  @Column({ type: 'varchar', nullable: true }) debtCollectionHabits?: string;
  @Column({ type: 'varchar', nullable: true }) otherOrgDebtPayingHabits?: string;
  @Column({ type: 'varchar', nullable: true }) economicBehaviorSociety?: string;
  @Column({ type: 'varchar', nullable: true }) socialPrestige?: string;
  @Column({ type: 'varchar', nullable: true }) residentialStatus?: string;
  @Column({ type: 'varchar', nullable: true }) humanRelationInSociety?: string;
  @Column({ type: 'varchar', nullable: true }) personalMoralCharacter?: string;
  @Column({ type: 'varchar', nullable: true }) stateOfEating?: string;
  @Column({ type: 'varchar', nullable: true }) fearOfDebt?: string;
  @Column({ type: 'varchar', nullable: true }) stateOfEconomicGrowth?: string;
  @Column({ type: 'varchar', nullable: true }) characterTotal?: string;
  // Collateral (धितो)
  @Column({ type: 'varchar', nullable: true }) collateralSellCondition?: string;
  @Column({ type: 'varchar', nullable: true }) loanAmountCollateralCondition?: string;
  @Column({ type: 'varchar', nullable: true }) ownershipConditionCollateral?: string;
  @Column({ type: 'varchar', nullable: true }) pledgedLocation?: string;
  @Column({ type: 'varchar', nullable: true }) securityOfPledged?: string;
  @Column({ type: 'varchar', nullable: true }) collateralTotal?: string;
  // Capital (पुँजी)
  @Column({ type: 'varchar', nullable: true }) regularShareSavingStatus?: string;
  @Column({ type: 'varchar', nullable: true }) growthOfShareSavingInInstitution?: string;
  @Column({ type: 'varchar', nullable: true }) cashMobilization?: string;
  @Column({ type: 'varchar', nullable: true }) debtRecoveryStatus?: string;
  @Column({ type: 'varchar', nullable: true }) propertyOwnership?: string;
  @Column({ type: 'varchar', nullable: true }) capitalTotal?: string;
  // Condition (अवस्था)
  @Column({ type: 'varchar', nullable: true }) weatherImpactOnBusiness?: string;
  @Column({ type: 'varchar', nullable: true }) diseaseImpactOnBusiness?: string;
  @Column({ type: 'varchar', nullable: true }) legalRecognitionOfBusiness?: string;
  @Column({ type: 'varchar', nullable: true }) environmentImpactOnBusiness?: string;
  @Column({ type: 'varchar', nullable: true }) impactOfProfessionOnMembers?: string;
  @Column({ type: 'varchar', nullable: true }) conditionTotal?: string;
  // Summary
  @Column({ type: 'varchar', nullable: true }) grandTotal?: string;
  @Column({ type: 'varchar', default: 'draft' }) status!: string;
  @Column({ type: 'varchar', nullable: true }) writerBy?: string;
  @Column({ type: 'varchar', nullable: true }) reviewBy?: string;
  @Column({ type: 'varchar', nullable: true }) approvedBy?: string;
  @Column({ type: 'varchar', nullable: true }) remarks?: string;
  @CreateDateColumn() createdAt!: Date;
  @UpdateDateColumn() updatedAt!: Date;
  @DeleteDateColumn() deletedAt?: Date;
}
