/*
 * Arrebol Consultancy copyright.
 * 
 * This code belongs to Arrebol Consultancy
 * its use, redistribution or modification are prohibited 
 * without written authorization from Arrebol Consultancy.
 */
package com.arrebol.apc.model.views;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.Immutable;

/**
 *
 * @author Carlos Janitzio Zavala Lopez <janitzio.zavala@arrebol.com.mx>
 */
@Entity
@Immutable
@Table(name = "APC_LOAN_BY_USER_VIEW")
public class LoanByUserView implements Serializable {

    private static final long serialVersionUID = -6868707427254694418L;

    @Id
    @Column(name = "id", length = 72)
    private String id;

    @Column(name = "user_id", length = 36)
    private String userId;

    @Column(name = "customer_name")
    private String customerName;

    @Column(name = "customer_address_home", length = 150)
    private String customerAddressHome;

    @Column(name = "customer_address_business", length = 150)
    private String customerAddressBusiness;

    @Column(name = "company_name", length = 150)
    private String companyName;

    @Column(name = "customer_thumbnail", length = 250)
    private String customerThumbnail;

    @Column(name = "endorsement_name")
    private String endorsementName;

    @Column(name = "endorsement_address_home", length = 150)
    private String endorsementAddressHome;

    @Column(name = "endorsement_thumbnail", length = 250)
    private String endorsementThumbnail;

    @Column(name = "endorsement_phone_home", length = 15)
    private String endorsementPhoneHome;

    @Column(name = "payment_daily")
    private BigDecimal paymentDaily;

    @Column(name = "loan_fee")
    private BigDecimal loanFee;

    @Column(name = "order_in_list")
    private Integer orderInList;

    @Column(name = "notification_number")
    private Integer notificationNumber;

    @Column(name = "renovation")
    private String renovation;

    @Column(name = "max_amount_to_pay")
    private BigDecimal maxAmountToPay;

    @Column(name = "customer_phone_home", length = 15)
    private String customerPhoneHome;

    @Transient
    private boolean hasPaymentToday;

    @Transient
    private String loanId;

    @Transient
    private String currentOwner;

    @Transient
    private boolean result;

    public LoanByUserView() {
    }

    /**
     *
     * @param customerName
     * @param customerAddressHome
     * @param customerAddressBusiness
     * @param companyName
     * @param customerThumbnail
     * @param endorsementName
     * @param endorsementAddressHome
     * @param endorsementThumbnail
     * @param endorsementPhoneHome
     * @param paymentDaily
     * @param loanFee
     * @param notificationNumber
     * @param renovation
     * @param maxAmountToPay
     * @param hasPaymentToday
     * @param loanId
     * @param currentOwner
     */
    public LoanByUserView(String customerName, String customerAddressHome, String customerAddressBusiness, String companyName, String customerThumbnail, String endorsementName, String endorsementAddressHome, String endorsementThumbnail, String endorsementPhoneHome, BigDecimal paymentDaily, BigDecimal loanFee, Integer notificationNumber, String renovation, BigDecimal maxAmountToPay, boolean hasPaymentToday, String loanId, String currentOwner) {
        this.customerName = customerName;
        this.customerAddressHome = customerAddressHome;
        this.customerAddressBusiness = customerAddressBusiness;
        this.companyName = companyName;
        this.customerThumbnail = customerThumbnail;
        this.endorsementName = endorsementName;
        this.endorsementAddressHome = endorsementAddressHome;
        this.endorsementThumbnail = endorsementThumbnail;
        this.endorsementPhoneHome = endorsementPhoneHome;
        this.paymentDaily = paymentDaily;
        this.loanFee = loanFee;
        this.notificationNumber = notificationNumber;
        this.renovation = renovation;
        this.maxAmountToPay = maxAmountToPay;
        this.hasPaymentToday = hasPaymentToday;
        this.result = true;
        this.loanId = loanId;
        this.currentOwner = currentOwner;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerAddressHome() {
        return customerAddressHome;
    }

    public void setCustomerAddressHome(String customerAddressHome) {
        this.customerAddressHome = customerAddressHome;
    }

    public String getCustomerAddressBusiness() {
        return customerAddressBusiness;
    }

    public void setCustomerAddressBusiness(String customerAddressBusiness) {
        this.customerAddressBusiness = customerAddressBusiness;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCustomerThumbnail() {
        return customerThumbnail;
    }

    public void setCustomerThumbnail(String customerThumbnail) {
        this.customerThumbnail = customerThumbnail;
    }

    public String getEndorsementName() {
        return endorsementName;
    }

    public void setEndorsementName(String endorsementName) {
        this.endorsementName = endorsementName;
    }

    public String getEndorsementAddressHome() {
        return endorsementAddressHome;
    }

    public void setEndorsementAddressHome(String endorsementAddressHome) {
        this.endorsementAddressHome = endorsementAddressHome;
    }

    public String getEndorsementThumbnail() {
        return endorsementThumbnail;
    }

    public void setEndorsementThumbnail(String endorsementThumbnail) {
        this.endorsementThumbnail = endorsementThumbnail;
    }

    public String getEndorsementPhoneHome() {
        return endorsementPhoneHome;
    }

    public void setEndorsementPhoneHome(String endorsementPhoneHome) {
        this.endorsementPhoneHome = endorsementPhoneHome;
    }

    public BigDecimal getPaymentDaily() {
        return paymentDaily;
    }

    public void setPaymentDaily(BigDecimal paymentDaily) {
        this.paymentDaily = paymentDaily;
    }

    public BigDecimal getLoanFee() {
        return loanFee;
    }

    public void setLoanFee(BigDecimal loanFee) {
        this.loanFee = loanFee;
    }

    public Integer getOrderInList() {
        return orderInList;
    }

    public void setOrderInList(Integer orderInList) {
        this.orderInList = orderInList;
    }

    public Integer getNotificationNumber() {
        return notificationNumber;
    }

    public void setNotificationNumber(Integer notificationNumber) {
        this.notificationNumber = notificationNumber;
    }

    public String getRenovation() {
        return renovation;
    }

    public void setRenovation(String renovation) {
        this.renovation = renovation;
    }

    public BigDecimal getMaxAmountToPay() {
        return maxAmountToPay;
    }

    public void setMaxAmountToPay(BigDecimal maxAmountToPay) {
        this.maxAmountToPay = maxAmountToPay;
    }

    public boolean isHasPaymentToday() {
        return hasPaymentToday;
    }

    public void setHasPaymentToday(boolean hasPaymentToday) {
        this.hasPaymentToday = hasPaymentToday;
    }

    public String getLoanId() {
        return loanId;
    }

    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    public String getCurrentOwner() {
        return currentOwner;
    }

    public void setCurrentOwner(String currentOwner) {
        this.currentOwner = currentOwner;
    }

    public boolean isResult() {
        return result;
    }

    public void setResult(boolean result) {
        this.result = result;
    }

    public String getCustomerPhoneHome() {
        return customerPhoneHome;
    }

    public void setCustomerPhoneHome(String customerPhoneHome) {
        this.customerPhoneHome = customerPhoneHome;
    }

    @Override
    public String toString() {
        return "LoanByUserView{" + "customerName=" + customerName + '}';
    }

}
