package com.bonus.canteen.core.marketing.v2.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;

@ApiModel("规则编辑")
public class MarketRuleEditDTO {
   @ApiModelProperty("主键")
   private Long ruleId;
   @ApiModelProperty("规则名称")
   private @NotBlank String ruleName;
   @ApiModelProperty("场景类型")
   private Integer sceneType;
   @ApiModelProperty("模块类型（1：就餐，2：计价，3：扣款）")
   private @NotNull Integer moduleType;
   @ApiModelProperty("规则类型")
   private @NotNull Integer ruleType;
   @ApiModelProperty("生效时间类型：1：限制时间段，2：不限")
   private @NotNull Integer effectTimeType;
   @ApiModelProperty("生效开始时间")
   private LocalDate effectBeginTime;
   @ApiModelProperty("生效结束时间")
   private LocalDate effectEndTime;
   @ApiModelProperty("生效时间段（10:30~12:00,17:00~19:00）")
   private List<String> effectTimeValue;
   @ApiModelProperty("生效周期（1：每天；2：每周；3：每月；4：日期类型）")
   private @NotNull Integer effectPeriod;
   @ApiModelProperty("生效周期值（1，2，3，4.....）")
   private List<Integer> effectPeriodValue;
   @ApiModelProperty("规则优先级")
   private Integer sort;
   @ApiModelProperty("备注")
   private String remark;
   @ApiModelProperty("规则内容json")
   private String ruleInfo;
   @ApiModelProperty("规则扩展内容字段")
   private List<MarketRuleExtDTO> ruleExtInfo;
   @ApiModelProperty("是否可以组合使用，暂不做")
   private Integer groupFlag;
   @ApiModelProperty("是否禁用(1-是，2-否)")
   private Integer disableFlag;
   @ApiModelProperty("适用设备")
   private List<String> deviceList;
   @ApiModelProperty("适用餐次")
   private List<Integer> mealtimeList;
   @ApiModelProperty("适用组织")
   private List<Long> orgIdList;
   @ApiModelProperty("适用人员类别")
   private List<Integer> psnTypeList;
   @ApiModelProperty("适用年龄段")
   private List<Integer> ageTypeList;
   @ApiModelProperty("适用支付渠道")
   private List<Integer> payChannelList;

   public Long getRuleId() {
      return this.ruleId;
   }

   public String getRuleName() {
      return this.ruleName;
   }

   public Integer getSceneType() {
      return this.sceneType;
   }

   public Integer getModuleType() {
      return this.moduleType;
   }

   public Integer getRuleType() {
      return this.ruleType;
   }

   public Integer getEffectTimeType() {
      return this.effectTimeType;
   }

   public LocalDate getEffectBeginTime() {
      return this.effectBeginTime;
   }

   public LocalDate getEffectEndTime() {
      return this.effectEndTime;
   }

   public List<String> getEffectTimeValue() {
      return this.effectTimeValue;
   }

   public Integer getEffectPeriod() {
      return this.effectPeriod;
   }

   public List<Integer> getEffectPeriodValue() {
      return this.effectPeriodValue;
   }

   public Integer getSort() {
      return this.sort;
   }

   public String getRemark() {
      return this.remark;
   }

   public String getRuleInfo() {
      return this.ruleInfo;
   }

   public List<MarketRuleExtDTO> getRuleExtInfo() {
      return this.ruleExtInfo;
   }

   public Integer getGroupFlag() {
      return this.groupFlag;
   }

   public Integer getDisableFlag() {
      return this.disableFlag;
   }

   public List<String> getDeviceList() {
      return this.deviceList;
   }

   public List<Integer> getMealtimeList() {
      return this.mealtimeList;
   }

   public List<Long> getOrgIdList() {
      return this.orgIdList;
   }

   public List<Integer> getPsnTypeList() {
      return this.psnTypeList;
   }

   public List<Integer> getAgeTypeList() {
      return this.ageTypeList;
   }

   public List<Integer> getPayChannelList() {
      return this.payChannelList;
   }

   public void setRuleId(final Long ruleId) {
      this.ruleId = ruleId;
   }

   public void setRuleName(final String ruleName) {
      this.ruleName = ruleName;
   }

   public void setSceneType(final Integer sceneType) {
      this.sceneType = sceneType;
   }

   public void setModuleType(final Integer moduleType) {
      this.moduleType = moduleType;
   }

   public void setRuleType(final Integer ruleType) {
      this.ruleType = ruleType;
   }

   public void setEffectTimeType(final Integer effectTimeType) {
      this.effectTimeType = effectTimeType;
   }

   public void setEffectBeginTime(final LocalDate effectBeginTime) {
      this.effectBeginTime = effectBeginTime;
   }

   public void setEffectEndTime(final LocalDate effectEndTime) {
      this.effectEndTime = effectEndTime;
   }

   public void setEffectTimeValue(final List<String> effectTimeValue) {
      this.effectTimeValue = effectTimeValue;
   }

   public void setEffectPeriod(final Integer effectPeriod) {
      this.effectPeriod = effectPeriod;
   }

   public void setEffectPeriodValue(final List<Integer> effectPeriodValue) {
      this.effectPeriodValue = effectPeriodValue;
   }

   public void setSort(final Integer sort) {
      this.sort = sort;
   }

   public void setRemark(final String remark) {
      this.remark = remark;
   }

   public void setRuleInfo(final String ruleInfo) {
      this.ruleInfo = ruleInfo;
   }

   public void setRuleExtInfo(final List<MarketRuleExtDTO> ruleExtInfo) {
      this.ruleExtInfo = ruleExtInfo;
   }

   public void setGroupFlag(final Integer groupFlag) {
      this.groupFlag = groupFlag;
   }

   public void setDisableFlag(final Integer disableFlag) {
      this.disableFlag = disableFlag;
   }

   public void setDeviceList(final List<String> deviceList) {
      this.deviceList = deviceList;
   }

   public void setMealtimeList(final List<Integer> mealtimeList) {
      this.mealtimeList = mealtimeList;
   }

   public void setOrgIdList(final List<Long> orgIdList) {
      this.orgIdList = orgIdList;
   }

   public void setPsnTypeList(final List<Integer> psnTypeList) {
      this.psnTypeList = psnTypeList;
   }

   public void setAgeTypeList(final List<Integer> ageTypeList) {
      this.ageTypeList = ageTypeList;
   }

   public void setPayChannelList(final List<Integer> payChannelList) {
      this.payChannelList = payChannelList;
   }
}
