package common.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.Date;

/**
 * Created by mxq on 2018/1/16.
 */
@Entity
public class Contract {
    private Long id;
    private String product;
    private String myBodyName;
    private String myBodyCode;
    private String customerBody;
    private String email; //客户主账号
    private String contractCode;
    //是否首次签约
    private String contractType; // 0 首次签约 1 续签 2 合同变更
    private String startDate;
    private String endDate;
    //套餐
    private Long priceLevel;
    private String priceLevelName;
    private Long money; //合同金额
    private Double rebate; //

    private Long sale;
    //产品 trackingio or adi ...
    private String platform;
    private String status;
    private String saleName;

    private Long payMoney;
    private Long invoice;  // 开票次数
    private BigDecimal invoiceMoney;  // 发票金额
    private String createName; // 创建人NAME
    //合同类型 主套餐 or 增值套餐
    private String type;
    private Long priceName;
    private Boolean old;
    private Long extraFlow; // 优惠流量

    private Long modifyAccount;
    private Long createAccount;// 创建人id
    private Date modifyTime;
    private Date createTime;
    private String ds;
    private Boolean virtual;

    /**
     * 新增字段 20190427
     */
//    private Long discountFlow; // 优惠流量
    private Long discountTimeLong; // 优惠时长
    private BigDecimal rebateMoney; //回款金额

    private String customerShort;// 客户简称
    private String customerThird;// 三方客户
    private int tradeType; // 行业id
    private Long relationContract;// 关联合同id
//    private String createrName; // 录入人
    private String relationCode;// 关联合同编号
    private String hasDiscount;// 是否有优惠



    @Id
    @GeneratedValue
    public Long getId() {
        return id;
    }

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

    public Boolean getVirtual() {
        return virtual;
    }

    public void setVirtual(Boolean virtual) {
        this.virtual = virtual;
    }

    public String getProduct() {
        return product;
    }

    public void setProduct(String product) {
        this.product = product;
    }

    public String getMyBodyName() {
        return myBodyName;
    }

    public void setMyBodyName(String myBodyName) {
        this.myBodyName = myBodyName;
    }

    public String getMyBodyCode() {
        return myBodyCode;
    }

    public void setMyBodyCode(String myBodyCode) {
        this.myBodyCode = myBodyCode;
    }

    public String getCustomerBody() {
        return customerBody;
    }

    public void setCustomerBody(String customerBody) {
        this.customerBody = customerBody;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getContractCode() {
        return contractCode;
    }

    public void setContractCode(String contractCode) {
        this.contractCode = contractCode;
    }

    public String getContractType() {
        return contractType;
    }

    public void setContractType(String contractType) {
        this.contractType = contractType;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String stratDate) {
        this.startDate = stratDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public Long getPriceLevel() {
        return priceLevel;
    }

    public void setPriceLevel(Long priceLevel) {
        this.priceLevel = priceLevel;
    }

    public Long getMoney() {
        return money;
    }

    public void setMoney(Long money) {
        this.money = money;
    }

    public Double getRebate() {
        return rebate;
    }

    public void setRebate(Double rebate) {
        this.rebate = rebate;
    }

    public Long getSale() {
        return sale;
    }

    public void setSale(Long sale) {
        this.sale = sale;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public Long getModifyAccount() {
        return modifyAccount;
    }

    public void setModifyAccount(Long modifyAccount) {
        this.modifyAccount = modifyAccount;
    }

    public Long getCreateAccount() {
        return createAccount;
    }

    public void setCreateAccount(Long createAccount) {
        this.createAccount = createAccount;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getDs() {
        return ds;
    }

    public void setDs(String ds) {
        this.ds = ds;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(Long payMoney) {
        this.payMoney = payMoney;
    }

    public Long getInvoice() {
        return invoice;
    }

    public BigDecimal getRebateMoney() {
        return rebateMoney;
    }

    public BigDecimal getInvoiceMoney() {
        return invoiceMoney;
    }

    public void setInvoiceMoney(BigDecimal invoiceMoney) {
        this.invoiceMoney = invoiceMoney;
    }

    public void setRebateMoney(BigDecimal rebateMoney) {
        this.rebateMoney = rebateMoney;
    }

    public void setInvoice(Long invoice) {
        this.invoice = invoice;
    }

    public String getType() {
        return type;
    }

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

    public Boolean getOld() {
        return old;
    }

    public Long getExtraFlow() {
        return extraFlow;
    }

    public void setExtraFlow(Long extraFlow) {
        this.extraFlow = extraFlow;
    }

    public void setOld(Boolean old) {
        this.old = old;
    }

    @Transient
    public Long getPriceName() {
        return priceName;
    }

    public void setPriceName(Long priceName) {
        this.priceName = priceName;
    }

    @Transient
    public String getSaleName() {
        return saleName;
    }

    public void setSaleName(String saleName) {
        this.saleName = saleName;
    }
    @Transient
    public String getPriceLevelName() {
        return priceLevelName;
    }

    @Transient
    public String getRelationCode() {
        return relationCode;
    }

    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }

    @Transient
    public String getHasDiscount() {
        return hasDiscount;
    }

    public void setHasDiscount(String hasDiscount) {
        this.hasDiscount = hasDiscount;
    }

    public void setPriceLevelName(String priceLevelName) {
        this.priceLevelName = priceLevelName;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

//    public Long getDiscountFlow() {
//        return discountFlow;
//    }
//
//    public void setDiscountFlow(Long discountFlow) {
//        this.discountFlow = discountFlow;
//    }

    public Long getDiscountTimeLong() {
        return discountTimeLong;
    }

    public void setDiscountTimeLong(Long discountTimeLong) {
        this.discountTimeLong = discountTimeLong;
    }

    public String getCustomerShort() {
        return customerShort;
    }

    public void setCustomerShort(String customerShort) {
        this.customerShort = customerShort;
    }

    public String getCustomerThird() {
        return customerThird;
    }

    public void setCustomerThird(String customerThird) {
        this.customerThird = customerThird;
    }

    public int getTradeType() {
        return tradeType;
    }

    public void setTradeType(int tradeType) {
        this.tradeType = tradeType;
    }

    public Long getRelationContract() {
        return relationContract;
    }

    public void setRelationContract(Long relationContract) {
        this.relationContract = relationContract;
    }

//    public String getCreaterName() {
//        return createrName;
//    }
//
//    public void setCreaterName(String createrName) {
//        this.createrName = createrName;
//    }

    @Override
    public String toString() {
        return "Contract{" +
                "id=" + id +
                ", product='" + product + '\'' +
                ", myBodyName='" + myBodyName + '\'' +
                ", myBodyCode='" + myBodyCode + '\'' +
                ", customerBody='" + customerBody + '\'' +
                ", email='" + email + '\'' +
                ", contractCode='" + contractCode + '\'' +
                ", contractType='" + contractType + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", priceLevel=" + priceLevel +
                ", money=" + money +
                ", rebate=" + rebate +
                ", sale=" + sale +
                ", platform='" + platform + '\'' +
                ", status='" + status + '\'' +
                ", modifyAccount=" + modifyAccount +
                ", createAccount=" + createAccount +
                ", modifyTime=" + modifyTime +
                ", createTime=" + createTime +
                ", ds='" + ds + '\'' +
                '}';
    }
}
