/*
* Copyright 2014-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.rockagen.gnext.po;
import com.rockagen.gnext.enums.AccountOperationType;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
/**
* Account bill
* @author ra
* @since JDK1.8
*/
@Entity
@Table(name = "ACCOUNT_BILLS")
public class AccountBill {
@Id
@Column(name = "ID")
@GeneratedValue
private Long id;
@Column(name = "SN",nullable = false)
private String sn;
@Enumerated(EnumType.STRING)
@Column(name = "OPERATION_TYPE",nullable=false)
private AccountOperationType operationType;
@Column(name = "CREATED_AT",nullable = false)
private Date createdAt;
@Column(name = "AMOUNT",precision=16,scale = 8,nullable = false)
private BigDecimal amount;
@Column(name = "BEFORE_BALANCE",precision=16,scale = 8,nullable = false)
private BigDecimal beforeBalance;
@Column(name = "AFTER_BALANCE",precision=16,scale = 8,nullable = false)
private BigDecimal afterBalance;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "ACCOUNT_ID",nullable = false)
private Account account;
@Column(name = "REMARK")
private String remark;
@Version
private Long version;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public AccountOperationType getOperationType() {
return operationType;
}
public void setOperationType(AccountOperationType operationType) {
this.operationType = operationType;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getBeforeBalance() {
return beforeBalance;
}
public void setBeforeBalance(BigDecimal beforeBalance) {
this.beforeBalance = beforeBalance;
}
public BigDecimal getAfterBalance() {
return afterBalance;
}
public void setAfterBalance(BigDecimal afterBalance) {
this.afterBalance = afterBalance;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}