/*
 * 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.util.Date;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Immutable;

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

    private static final long serialVersionUID = 7430662914845336484L;

    @Id
    @Column(name = "id_loan_detail", length = 36)
    private String idLoanDetail;

    @Column(name = "payment_amount")
    private Double paymentAmount;

    @Column(name = "str_created_on", length = 22)
    private String strCreatedOn;

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

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

    @Column(name = "user_name", length = 103)
    private String userName;

    @Column(name = "loan_comments", length = 150)
    private String loanComments;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_on", length = 19)
    private Date createdOn;

    /**
     *
     */
    public TransferInPendingStatusView() {
    }

    /**
     *
     * @param idLoanDetail
     * @param paymentAmount
     * @param strCreatedOn
     * @param customerName
     * @param endorsementName
     * @param userName
     * @param loanComments
     * @param createdOn
     */
    public TransferInPendingStatusView(String idLoanDetail, Double paymentAmount, String strCreatedOn, String customerName, String endorsementName, String userName, String loanComments, Date createdOn) {
        this.idLoanDetail = idLoanDetail;
        this.paymentAmount = paymentAmount;
        this.strCreatedOn = strCreatedOn;
        this.customerName = customerName;
        this.endorsementName = endorsementName;
        this.userName = userName;
        this.loanComments = loanComments;
        this.createdOn = createdOn;
    }

    public String getIdLoanDetail() {
        return idLoanDetail;
    }

    public void setIdLoanDetail(String idLoanDetail) {
        this.idLoanDetail = idLoanDetail;
    }

    public Double getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(Double paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public String getStrCreatedOn() {
        return strCreatedOn;
    }

    public void setStrCreatedOn(String strCreatedOn) {
        this.strCreatedOn = strCreatedOn;
    }

    public String getCustomerName() {
        return customerName;
    }

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

    public String getEndorsementName() {
        return endorsementName;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getLoanComments() {
        return loanComments;
    }

    public void setLoanComments(String loanComments) {
        this.loanComments = loanComments;
    }

    public Date getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(Date createdOn) {
        this.createdOn = createdOn;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 61 * hash + Objects.hashCode(this.idLoanDetail);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final TransferInPendingStatusView other = (TransferInPendingStatusView) obj;
        if (!Objects.equals(this.idLoanDetail, other.idLoanDetail)) {
            return false;
        }
        return true;
    }

}
