package com.avitam.bankloanapplication.model.entity;

import com.avitam.bankloanapplication.model.dto.CustomerDto;
import com.avitam.bankloanapplication.model.dto.LoanEmiDetailDto;
import com.avitam.bankloanapplication.model.dto.LoanTypeDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@Document("Loan")
public class Loan extends BaseEntity {
    private String loanType;
    private LoanTypeDto loanTypeDto;
    private BigDecimal loanEmi;
    private BigDecimal interestRate;
    private BigDecimal tenure;
    private List<LoanEmiDetailDto> loanEmiDetailDtoList;
    private String loanDetailsId;
    private BigDecimal desiredLoan;
    private String images;
    private String loanName;
    private String loanScoreResultId;
    private BigDecimal creditMultiplier;
    private String customerId;
    private CustomerDto customerDto;
    @JsonFormat(pattern = "dd-MM-yyyy")
    private LocalDate sanctionDate;
    private BigDecimal totalInterestAmount;
    private BigDecimal totalInstalmentAmount;
    private BigDecimal totalPayableAmount;
    private BigDecimal totalPenalty;
    private String loanStatus;
    private BigDecimal pendingInstallmentAmount;
    private BigDecimal pendingTotalEmiAmount;
    private BigDecimal foreClosingCharges;
    private Boolean foreClosing = false;
    @JsonFormat(pattern = "dd-MM-yyyy")
    private LocalDate closureDate;
    private LocalDate dueDate;
    private BigDecimal interestAmount;
    private BigDecimal totalForeclosingAmount;

}
