package com.bonus.core.marketing.v2.model;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

@ApiModel("规则基本信息表")
public class MarketRule implements Serializable {
   private static final long serialVersionUID = 1L;
   @TableId
   @ApiModelProperty("主键")
   private Long ruleId;
   @ApiModelProperty("规则名称")
   private String ruleName;
   @ApiModelProperty("场景类型")
   private Integer sceneType;
   @ApiModelProperty("模块类型（1：就餐，2：计价，3：扣款）")
   private Integer moduleType;
   @ApiModelProperty("规则类型")
   private Integer ruleType;
   @ApiModelProperty("生效时间类型：1：限制时间段，2：不限")
   private Integer effectTimeType;
   @ApiModelProperty("生效开始时间")
   private LocalDate effectBeginTime;
   @ApiModelProperty("生效结束时间")
   private LocalDate effectEndTime;
   @ApiModelProperty("生效时间段（,10:30~12:00,17:00~19:00,）")
   private String effectTimeValue;
   @ApiModelProperty("生效周期（1：每天；2：每周；3：每月；4：日期类型）")
   private Integer effectPeriod;
   @ApiModelProperty("生效周期值（1，2，3，4.....）")
   private String effectPeriodValue;
   @ApiModelProperty("规则优先级")
   private Integer sort;
   @ApiModelProperty("备注")
   private String remark;
   @ApiModelProperty("规则内容json")
   private String ruleInfo;
   @ApiModelProperty("是否可以组合使用，暂不做")
   private Integer groupFlag;
   @ApiModelProperty("是否禁用(1-是，2-否)")
   private Integer disableFlag;
   @ApiModelProperty("是否删除(1-是，2-否)")
   private Integer delFlag;
   @ApiModelProperty("创建人")
   @TableField(
      value = "crby",
      fill = FieldFill.INSERT
   )
   private String crby;
   @ApiModelProperty("创建时间")
   @TableField(
      value = "crtime",
      fill = FieldFill.INSERT
   )
   private LocalDateTime crtime;
   @ApiModelProperty("更新人")
   @TableField(
      value = "upby",
      fill = FieldFill.UPDATE
   )
   private String upby;
   @ApiModelProperty("更新时间")
   @TableField(
      value = "uptime",
      fill = FieldFill.UPDATE
   )
   private LocalDateTime uptime;

   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 String getEffectTimeValue() {
      return this.effectTimeValue;
   }

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

   public String getEffectPeriodValue() {
      return this.effectPeriodValue;
   }

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

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

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

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

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

   public Integer getDelFlag() {
      return this.delFlag;
   }

   public String getCrby() {
      return this.crby;
   }

   public LocalDateTime getCrtime() {
      return this.crtime;
   }

   public String getUpby() {
      return this.upby;
   }

   public LocalDateTime getUptime() {
      return this.uptime;
   }

   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 String effectTimeValue) {
      this.effectTimeValue = effectTimeValue;
   }

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

   public void setEffectPeriodValue(final String 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 setGroupFlag(final Integer groupFlag) {
      this.groupFlag = groupFlag;
   }

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

   public void setDelFlag(final Integer delFlag) {
      this.delFlag = delFlag;
   }

   public void setCrby(final String crby) {
      this.crby = crby;
   }

   public void setCrtime(final LocalDateTime crtime) {
      this.crtime = crtime;
   }

   public void setUpby(final String upby) {
      this.upby = upby;
   }

   public void setUptime(final LocalDateTime uptime) {
      this.uptime = uptime;
   }
}
