package com.cyksj.model.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cyksj.model.views.ActivityOrderDataView;
import com.ejlchina.searcher.bean.DbIgnore;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

/**
 * 项目名: yhlxj
 * 文件名: UserActivity
 * 创建者: JavaZou
 * 创建时间:2024/4/15 15:44
 * 官网用户活动表
 */
@Getter
@Setter
public class UserActivity extends BaseEntity {
	/**
	 * 活动名称
	 */
	@NotEmpty(message = "活动名称不能为空")
	private String name;

	/**
	 * 开始时间
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date startTime;

	/**
	 * 结束时间
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date endTime;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 优惠券ids
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String couponIds;

	/**
	 * 图片
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String img;

	/**
	 * 规则图片
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String rules;

	/**
	 * 0.大学生认证
	 * 1.个人分销排行
	 * 3.平台发券
	 */
	private Integer type;

	/**
	 * 统计类型(周/月)
	 * week,month
	 */
	private String statisticsType;

	/**
	 * 分销排行榜类型
	 * 0.金额榜，1.打单榜
	 */
	private Integer rankType;

	/**
	 * 头奖范围
	 * 5：前五名
	 */
	private Integer headRank;

	/**
	 * 奖励信息json
	 */
	private String rewardInfo;

	@DbIgnore
	@TableField(exist = false)
	private List<RewardInfo> rewardInfoList;

	/**
	 * 设置机器人
	 */
	@DbIgnore
	@TableField(exist = false)
	private List<UserActivityRankRobot> rankRobots;

	/**
	 * 活动订单书库
	 */
	@DbIgnore
	@TableField(exist = false)
	private ActivityOrderDataView orderDataView;

	/**
	 * 是否删除
	 */
	private Boolean deleted;

	@Getter
	@Setter
	public static class RewardInfo{

		/**
		 * 名次
		 */
		private Integer rank;

		/**
		 * 0.返现
		 * 1.余额
		 * 2.兑换码
		 * 奖品类型
		 */
		private Integer type;

		/**
		 * 具体奖励
		 */
		private String reward;
	}
}