Subversion Repositories SmartDukaan

Rev

Rev 23504 | Rev 23585 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.entity.dtr;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.UpdateTimestamp;

import com.spice.profitmandi.common.enumuration.RechargeStatus;
import com.spice.profitmandi.common.model.OperatorType;
import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
import com.spice.profitmandi.dao.enumuration.dtr.RechargeType;

/**
 * This class basically contains recharge transaction details
 * 
 * @author ashikali
 *
 */

@Entity
@Table(name="dtr.recharge_transaction", schema = "dtr")
public class RechargeTransaction implements Serializable{
        
        private static final long serialVersionUID = 1L;
        
        public RechargeTransaction() {
        }
        
        @Id
        @Column(name="id", unique=true, updatable=false)
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        
        @Column(name = "retailer_id")
        private int retailerId;
        
        @Column(name = "request_id")
        private String requestId;
        
        @Column(name = "provider_id")
        private int providerId;
        
        @Column(name="operator_id", unique = true)
        private int operatorId;
        
        @Column(name="reference_number", unique = true)
        private String referenceNumber;
        
        @Column(name = "operator_type")
        @Enumerated(EnumType.STRING)
        private OperatorType operatorType;
        
        @Column(name = "type")
        @Enumerated(EnumType.STRING)
        private RechargeType type;
        
        @Column(name = "amount")
        private float amount;
        
        @Column(name = "commission")
        private float commission;
        
        @Column(name = "status")
        @Enumerated(EnumType.STRING)
        private RechargeStatus status;
        
        @Column(name = "status_message")
        private String statusMessage;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="create_timestamp", updatable = false)
        private LocalDateTime createTimestamp = LocalDateTime.now();
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="update_timestamp")
        @UpdateTimestamp
        private LocalDateTime updateTimestamp = LocalDateTime.now();

        public int getId() {
                return id;
        }

        public void setId(int id) {
                this.id = id;
        }
        
        public int getRetailerId() {
                return retailerId;
        }
        
        public void setRetailerId(int retailerId) {
                this.retailerId = retailerId;
        }
        
        public String getRequestId() {
                return requestId;
        }
        
        public void setRequestId(String requestId) {
                this.requestId = requestId;
        }
        
        public int getProviderId() {
                return providerId;
        }
        
        public void setProviderId(int providerId) {
                this.providerId = providerId;
        }

        public int getOperatorId() {
                return operatorId;
        }
        
        public void setOperatorId(int operatorId) {
                this.operatorId = operatorId;
        }

        public String getReferenceNumber() {
                return referenceNumber;
        }

        public void setReferenceNumber(String referenceNumber) {
                this.referenceNumber = referenceNumber;
        }
        
        public OperatorType getOperatorType() {
                return operatorType;
        }
        
        public void setOperatorType(OperatorType operatorType) {
                this.operatorType = operatorType;
        }

        public RechargeType getType() {
                return type;
        }

        public void setType(RechargeType type) {
                this.type = type;
        }

        public float getAmount() {
                return amount;
        }

        public void setAmount(float amount) {
                this.amount = amount;
        }
        
        public float getCommission() {
                return commission;
        }
        
        public void setCommission(float commission) {
                this.commission = commission;
        }

        public RechargeStatus getStatus() {
                return status;
        }

        public void setStatus(RechargeStatus status) {
                this.status = status;
        }
        
        public String getStatusMessage() {
                return statusMessage;
        }
        
        public void setStatusMessage(String statusMessage) {
                this.statusMessage = statusMessage;
        }

        public LocalDateTime getCreateTimestamp() {
                return createTimestamp;
        }

        public void setCreateTimestamp(LocalDateTime createTimestamp) {
                this.createTimestamp = createTimestamp;
        }

        public LocalDateTime getUpdateTimestamp() {
                return updateTimestamp;
        }

        public void setUpdateTimestamp(LocalDateTime updateTimestamp) {
                this.updateTimestamp = updateTimestamp;
        }
        
        public String getFormattedCreateTimestamp(){
                if(createTimestamp == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
                return createTimestamp.format(formatter);
    }
        
        public String getFormattedUpdateTimestamp(){
                if(updateTimestamp == null){
                        return null;
                }
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
                return updateTimestamp.format(formatter);
    }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + id;
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                RechargeTransaction other = (RechargeTransaction) obj;
                if (id != other.id)
                        return false;
                return true;
        }

        @Override
        public String toString() {
                return "RechargeTransaction [id=" + id + ", retailerId=" + retailerId + ", requestId=" + requestId
                                + ", providerId=" + providerId + ", operatorId=" + operatorId + ", referenceNumber=" + referenceNumber
                                + ", operatorType=" + operatorType + ", type=" + type + ", amount=" + amount + ", commission="
                                + commission + ", status=" + status + ", statusMessage=" + statusMessage + ", createTimestamp="
                                + createTimestamp + ", updateTimestamp=" + updateTimestamp + "]";
        }
        
}