package com.cyksj.model.views;

import com.cyksj.model.entity.Coupon;
import com.ejlchina.searcher.bean.DbField;
import com.ejlchina.searcher.bean.DbIgnore;
import com.ejlchina.searcher.bean.SearchBean;
import lombok.Getter;
import lombok.Setter;

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

/*
 *项目名: netflix
 *文件名: CouponView
 *创建者: JavaZou
 *创建时间:2022/11/17 18:32
 */
@Getter
@Setter
@SearchBean(tables = "coupon c left join coupon_classification cc on cc.id = c.classification_id",
		where = "c.deleted is true")
public class CouponView {
	@DbField("c.id")
	private Long id;

	/**
	 * 优惠券名称
	 */
	@DbField("c.name")
	private String name;

	@DbField("cc.id")
	private Long classificationId;

	@DbField("cc.name")
	private String couponClassificationName;

	/**
	 * 优惠券平台类型
	 */
	@DbField("c.goods_type")
	private Coupon.GoodsType goodsType;

	/**
	 * 优惠券类型
	 */
	@DbField("c.type")
	private Coupon.Type type;

	/**
	 * 可用满减卷金额条件
	 */
	@DbField("c.reduce_condition")
	private BigDecimal reduceCondition;

	/**
	 * 抵扣金额
	 */
	@DbField("c.reduce_money")
	private BigDecimal reduceMoney;

	/**
	 * 折扣
	 */
	@DbField("c.discount")
	private BigDecimal discount;

	/**
	 * 领取人范围
	 */
	@DbField("c.scope")
	private Coupon.Scope scope;

	/**
	 * 平台规格集合
	 */
	@DbField("c.goods_sku_ids")
	private String goodsSkuIds;

	/**
	 * 是否是有效时间
	 */
	@DbField("c.is_valid_time")
	private Boolean isValidTime;

	/**
	 * 起始有效时间
	 */
	@DbField("c.valid_start_time")
	private Date validStartTime;

	/**
	 * 截止有效时间
	 */
	@DbField("c.valid_end_time")
	private Date validEndTime;

	/**
	 * 领取有效天数
	 */
	@DbField("c.valid_days")
	private Integer validDays;

	/**
	 * 领取有效小时
	 */
	@DbField("c.valid_hours")
	private Integer validHours;

	/**
	 * 使用范围
	 */
	@DbField("c.use_scope")
	private Coupon.UseScope useScope;

	/**
	 * 兑换码
	 */
	@DbField("c.ex_code")
	private String exCode;

	@DbIgnore
	private Integer usedNum;

	@DbIgnore
	private Integer receiptNum;

	/**
	 * 发放状态
	 */
	@DbField("c.send_status")
	private Boolean sendStatus;

	/**
	 * 推荐状态
	 */
	@DbField("c.hot_status")
	private Boolean hotStatus;

	@DbIgnore
	private Integer relationNum;

	@DbIgnore
	private String goodsSkuStr;

	@DbIgnore
	private List<GoodsDonSkuView> skuViewList;

	@DbField("c.created_time")
	private Date createdTime;

	@DbIgnore
	private String goodsImg;

	@DbField("c.id")
	private Long couponId;
}
