package com.ym.mec.biz.dal.entity;

import com.ym.mec.biz.dal.dto.CloudTeacherOrderDto;
import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
import com.ym.mec.common.entity.BaseEntity;

import io.swagger.annotations.ApiModelProperty;

import org.apache.commons.lang3.builder.ToStringBuilder;

import java.math.BigDecimal;
import java.util.List;

/**
 * 对应数据库表(student_payment_order_detail):
 */
public class StudentPaymentOrderDetail extends BaseEntity {

	/**  */
	private Long id;
	
	private String name;
	
	/** 类型(乐器、辅件、教材、课程) */
	@ApiModelProperty(value = "类型",required = true)
	private OrderDetailTypeEnum type;
	
	/** 商品列表(用户|分开) */
	@ApiModelProperty(value = "商品列表(用户|分开) ",required = true)
	private String goodsIdList;
	
	/** 打包价格 */
	@ApiModelProperty(value = "打包价格",required = true)
	private BigDecimal price;
	
	/**  */
	private java.util.Date createTime;
	
	/**  */
	private java.util.Date updateTime;
	
	/** 订单编号(对应student_payment_order) */
	@ApiModelProperty(value = "订单编号",required = true)
	private Long paymentOrderId;

	//购买方式
	private KitGroupPurchaseTypeEnum kitGroupPurchaseType;

	//商品成本价
	private String goodsPrices;

	private List<Goods> goodsList;

	//减免费用
	private BigDecimal remitFee = BigDecimal.ZERO;

	//学生乐器id
	private Long studentInstrumentId;

	//乐保是否是续费 0-否 1-是
	private Integer isRenew;
	
	private String incomeItem;
	
	private BigDecimal income = BigDecimal.ZERO;
	
	private BigDecimal balanceIncome = BigDecimal.ZERO;
	
	private String minuendStockGoodsIdList;

	@ApiModelProperty(value = "子商品列表",required = false)
	private List<Goods> childGoodsList;
	
	private CloudTeacherOrderDto cloudTeacherOrderDto;

	private Integer userId;

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public OrderDetailTypeEnum getType() {
		return type;
	}

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

	public BigDecimal getPrice() {
		return price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	public void setGoodsIdList(String goodsIdList){
		this.goodsIdList = goodsIdList;
	}
	
	public String getGoodsIdList(){
		return this.goodsIdList;
	}
			
	public void setCreateTime(java.util.Date createTime){
		this.createTime = createTime;
	}
	
	public java.util.Date getCreateTime(){
		return this.createTime;
	}
			
	public void setUpdateTime(java.util.Date updateTime){
		this.updateTime = updateTime;
	}
	
	public java.util.Date getUpdateTime(){
		return this.updateTime;
	}
			
	public void setPaymentOrderId(Long paymentOrderId){
		this.paymentOrderId = paymentOrderId;
	}
	
	public Long getPaymentOrderId(){
		return this.paymentOrderId;
	}
			
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

	public KitGroupPurchaseTypeEnum getKitGroupPurchaseType() {
		return kitGroupPurchaseType;
	}

	public void setKitGroupPurchaseType(KitGroupPurchaseTypeEnum kitGroupPurchaseType) {
		this.kitGroupPurchaseType = kitGroupPurchaseType;
	}

	public String getGoodsPrices() {
		return goodsPrices;
	}

	public void setGoodsPrices(String goodsPrices) {
		this.goodsPrices = goodsPrices;
	}

	public List<Goods> getGoodsList() {
		return goodsList;
	}

	public void setGoodsList(List<Goods> goodsList) {
		this.goodsList = goodsList;
	}

	public BigDecimal getRemitFee() {
		return remitFee;
	}

	public void setRemitFee(BigDecimal remitFee) {
		this.remitFee = remitFee;
	}

	public List<Goods> getChildGoodsList() {
		return childGoodsList;
	}

	public void setChildGoodsList(List<Goods> childGoodsList) {
		this.childGoodsList = childGoodsList;
	}

	public Long getStudentInstrumentId() {
		return studentInstrumentId;
	}

	public void setStudentInstrumentId(Long studentInstrumentId) {
		this.studentInstrumentId = studentInstrumentId;
	}

	public Integer getIsRenew() {
		return isRenew;
	}

	public void setIsRenew(Integer isRenew) {
		this.isRenew = isRenew;
	}

	public CloudTeacherOrderDto getCloudTeacherOrderDto() {
		return cloudTeacherOrderDto;
	}

	public void setCloudTeacherOrderDto(CloudTeacherOrderDto cloudTeacherOrderDto) {
		this.cloudTeacherOrderDto = cloudTeacherOrderDto;
	}

	public String getIncomeItem() {
		return incomeItem;
	}

	public void setIncomeItem(String incomeItem) {
		this.incomeItem = incomeItem;
	}

	public BigDecimal getIncome() {
		return income;
	}

	public void setIncome(BigDecimal income) {
		this.income = income;
	}

	public BigDecimal getBalanceIncome() {
		return balanceIncome;
	}

	public void setBalanceIncome(BigDecimal balanceIncome) {
		this.balanceIncome = balanceIncome;
	}

	public String getMinuendStockGoodsIdList() {
		return minuendStockGoodsIdList;
	}

	public void setMinuendStockGoodsIdList(String minuendStockGoodsIdList) {
		this.minuendStockGoodsIdList = minuendStockGoodsIdList;
	}
}
