package com.iformall.domain.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.Transient;
import java.util.Date;
import java.util.List;


@JsonIgnoreProperties(value = {"handler"})
public class WxOrderCouponVo {

	/**
	 *
	 */
	private static final long serialVersionUID = 6687964932922444531L;

	protected Long id;

	public Long getId() {
		return id;
	}

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

	@Transient
	private Integer validStatus;

	public Integer getValidStatus() {
		return validStatus;
	}

	public void setValidStatus(Integer validStatus) {
		this.validStatus = validStatus;
	}



	/* 基础购买到的券信息 */

	/*订单码;正反向交易保持一致。**/
	@io.swagger.annotations.ApiModelProperty(value="订单码;正反向交易保持一致。",name="orderNumber")
	private Long orderNumber;
	/*租户ID**/
	@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
	private String tenantId;
	/*c端用户id**/
	@io.swagger.annotations.ApiModelProperty(value="c端用户id",name="cUserId")
	private Long cUserId;

	/*商户ID**/
    /**渠道ID**/
    @io.swagger.annotations.ApiModelProperty(value="渠道ID",name="couponChannelId")
    private Long couponChannelId;
	/*产品ID**/
	@io.swagger.annotations.ApiModelProperty(value="产品ID",name="productId")
	private Long productId;
	/*0: 付款 1: 退款**/
	@io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType")
	private Integer paymentType;
	/*支付金额(分)：允许有负数，退款时为负值。**/
	@io.swagger.annotations.ApiModelProperty(value="支付金额(分)：允许有负数，退款时为负值。",name="payment")
	private Integer payment;
	/*支付时间**/
	@io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime")
	private Date paymentTime;
	/*订单状态：-1全部;正向交易：0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易：3-已退款;4-退款失败**/
	@io.swagger.annotations.ApiModelProperty(value="订单状态：-1全部;正向交易：0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易：3-已退款;4-退款失败",name="orderStatus")
	private Integer orderStatus;
	/*创建时间**/
	@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
	private Date createDate;
	/*更新时间**/
	@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
	private Date updateDate;

	/**有效日期-开始**/
	@io.swagger.annotations.ApiModelProperty(value="有效日期-开始",name="validStartDate")
	private Date validStartDate;
	/**有效日期-结束**/
	@io.swagger.annotations.ApiModelProperty(value="有效日期-结束",name="validEndDate")
	private Date validEndDate;

	/*券ID-产品ID将来的产品都会放在coupon表里**/
	@io.swagger.annotations.ApiModelProperty(value="券包中券ID",name="couponOrderId")
	private Long couponOrderId;
	/*0: 未使用 1: 已核销 2:已过期 3:已退款**/
	@io.swagger.annotations.ApiModelProperty(value="0: 未使用 1: 已核销 2:已过期 3:已退款",name="couponOrderStatus")
	private Integer couponOrderStatus;

	/* 券类型信息 */
	/*商户id**/
	/*券类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)**/
	@io.swagger.annotations.ApiModelProperty(value="券类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)",name="type")
	private Integer type;
	/*封面图**/
	@io.swagger.annotations.ApiModelProperty(value="封面图",name="coverImg")
	private String coverImg;
	/*券名称**/
	@io.swagger.annotations.ApiModelProperty(value="券名称",name="title")
	private String title;
	/*副标题**/
	@io.swagger.annotations.ApiModelProperty(value="副标题",name="subTitle")
	private String subTitle;
	/*售价（适用于类型2，3，4，5）**/
	@io.swagger.annotations.ApiModelProperty(value="售价（适用于类型2，3，4，5）",name="salePrice")
	private Integer salePrice;
	/*使用条件金额（适用于类型1,2,3,4）**/
	@io.swagger.annotations.ApiModelProperty(value="使用条件金额（适用于类型1,2,3,4）",name="usePrice")
	private Integer usePrice;
	/*面额**/
	@io.swagger.annotations.ApiModelProperty(value="面额",name="price")
	private Integer price;
	/*单位**/
	@io.swagger.annotations.ApiModelProperty(value="单位0:钱分，1:小时",name="unit")
	private Integer unit;
	/*须知**/
	@io.swagger.annotations.ApiModelProperty(value="须知",name="detail")
	private String detail;
	/*购买须知**/
	@io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark")
	private String remark;

	/*发券商户信息*/
	@io.swagger.annotations.ApiModelProperty(value="商户列表",name="merchantVoList")
	private List<WxMerchantVo> merchantVoList;

	/*卡券来源**/
	@io.swagger.annotations.ApiModelProperty(value="卡券来源",name="sendChannelType")
	private Integer sendChannelType;

    @io.swagger.annotations.ApiModelProperty(value = "是否可转赠", name = "supportTransfer")
    private Integer supportTransfer;


	public Long getOrderNumber() {
		return orderNumber;
	}
	public void setOrderNumber(Long _orderNumber) {
		orderNumber = _orderNumber;
	}
	public String getTenantId() {
		return tenantId;
	}
	public void setTenantId(String _tenantId) {
		tenantId = _tenantId;
	}
	public Long getCUserId() {
		return cUserId;
	}
	public void setCUserId(Long _cUserId) {
		cUserId = _cUserId;
	}

    public Long getCouponChannelId() {
        return couponChannelId;
    }

    public void setCouponChannelId(Long couponChannelId) {
        this.couponChannelId = couponChannelId;
    }

    public Long getProductId() {
		return productId;
	}
	public void setProductId(Long _productId) {
		this.productId = _productId;
	}

	public Integer getPaymentType() {
		return paymentType;
	}
	public void setPaymentType(Integer _paymentType) {
		paymentType = _paymentType;
	}
	public Integer getPayment() {
		return payment;
	}
	public void setPayment(Integer _payment) {
		payment = _payment;
	}
	public Date getPaymentTime() {
		return paymentTime;
	}
	public void setPaymentTime(Date _paymentTime) {
		paymentTime = _paymentTime;
	}
	public Integer getOrderStatus() {
		return orderStatus;
	}
	public void setOrderStatus(Integer _orderStatus) {
		orderStatus = _orderStatus;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date _createDate) {
		createDate = _createDate;
	}
	public Date getUpdateDate() {
		return updateDate;
	}
	public void setUpdateDate(Date _updateDate) {
		updateDate = _updateDate;
	}

	public Long getCouponOrderId() {
		return couponOrderId;
	}
	public void setCouponOrderId(Long _couponOrderId) {
		this.couponOrderId = _couponOrderId;
	}
	public Integer getCouponOrderStatus() {
		return couponOrderStatus;
	}
	public void setCouponOrderStatus(Integer _couponOrderStatus) {
		couponOrderStatus = _couponOrderStatus;
	}

	public Integer getType() {
		return type;
	}
	public void setType(Integer _type) {
		type = _type;
	}
	public String getCoverImg() {
		return coverImg;
	}
	public void setCoverImg(String _coverImg) {
		coverImg = _coverImg;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String _title) {
		title = _title;
	}
	public String getSubTitle() {
		return subTitle;
	}
	public void setSubTitle(String _subTitle) {
		subTitle = _subTitle;
	}
	public Integer getSalePrice() {
		return salePrice;
	}
	public void setSalePrice(Integer _salePrice) {
		salePrice = _salePrice;
	}
	public Integer getUsePrice() {
		return usePrice;
	}
	public void setUsePrice(Integer _usePrice) {
		usePrice = _usePrice;
	}
	public String getDetail() {
		return detail;
	}
	public void setDetail(String _detail) {
		detail = _detail;
	}
	public Integer getPrice() {
		return price;
	}
	public void setPrice(Integer _price) {
		price = _price;
	}
	public Integer getUnit() {
		return unit;
	}
	public void setUnit(Integer unit) {
		this.unit = unit;
	}

	public List<WxMerchantVo> getMerchantVoList() {
		return merchantVoList;
	}

	public void setMerchantVoList(List<WxMerchantVo> merchantVoList) {
		this.merchantVoList = merchantVoList;
	}

	public String  getRemark() {
		return remark;
	}
	public void setRemark(String _remark) {
		remark = _remark;
	}

	public Integer getSendChannelType() {
		return sendChannelType;
	}

	public void setSendChannelType(Integer sendChannelType) {
		this.sendChannelType = sendChannelType;
	}

    public Long getcUserId() {
        return cUserId;
    }

    public void setcUserId(Long cUserId) {
        this.cUserId = cUserId;
    }

    public Integer getSupportTransfer() {
        return supportTransfer;
    }

    public void setSupportTransfer(Integer supportTransfer) {
        this.supportTransfer = supportTransfer;
    }

	public Date getValidStartDate() {
		return validStartDate;
	}

	public void setValidStartDate(Date validStartDate) {
		this.validStartDate = validStartDate;
	}

	public Date getValidEndDate() {
		return validEndDate;
	}

	public void setValidEndDate(Date validEndDate) {
		this.validEndDate = validEndDate;
	}
}
