package com.hongqiang.shop.modules.entity;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.validator.constraints.Length;
//预存款实体类
@Entity
@Table(name="hq_deposit")
public class Deposit extends BaseEntity
{
private static final long serialVersionUID = -8323452873046981882L;
private Type type;//预存款操作类型
private BigDecimal credit;//存入金额
private BigDecimal debit;//支出金额
private BigDecimal balance;//当前余额
private String operator;//操作
private String memo;//备忘录
private Member member;//会员
private Order order;//订单
private Payment payment;//收款
// 预存款操作类型(会员充值、会员支付、后台代支付、后台代扣费、后台代充值、后台退款)
public enum Type
{
memberRecharge, memberPayment, adminRecharge, adminChargeback, adminPayment, adminRefunds;
}
@Column(nullable=false, updatable=false)
public Type getType()
{
return this.type;
}
public void setType(Type type)
{
this.type = type;
}
@Column(nullable=false, updatable=false, precision=21, scale=6)
public BigDecimal getCredit()
{
return this.credit;
}
public void setCredit(BigDecimal credit)
{
this.credit = credit;
}
@Column(nullable=false, updatable=false, precision=21, scale=6)
public BigDecimal getDebit()
{
return this.debit;
}
public void setDebit(BigDecimal debit)
{
this.debit = debit;
}
@Column(nullable=false, updatable=false, precision=21, scale=6)
public BigDecimal getBalance()
{
return this.balance;
}
public void setBalance(BigDecimal balance)
{
this.balance = balance;
}
@Column(updatable=false)
public String getOperator()
{
return this.operator;
}
public void setOperator(String operator)
{
this.operator = operator;
}
@Length(max=200)
@Column(updatable=false)
public String getMemo()
{
return this.memo;
}
public void setMemo(String memo)
{
this.memo = memo;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(nullable=false, updatable=false)
public Member getMember()
{
return this.member;
}
public void setMember(Member member)
{
this.member = member;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="orders")
public Order getOrder()
{
return this.order;
}
public void setOrder(Order order)
{
this.order = order;
}
@ManyToOne(fetch=FetchType.LAZY)
public Payment getPayment()
{
return this.payment;
}
public void setPayment(Payment payment)
{
this.payment = payment;
}
}