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

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

import java.io.Serializable;

@ApiModel("规则适用范围")
public class MarketRuleRange implements Serializable {
   private static final long serialVersionUID = 1L;
   @TableId
   @ApiModelProperty("主键")
   private Long rangeId;
   @ApiModelProperty("规则id")
   private Long ruleId;
   @ApiModelProperty("数据类型")
   private Integer rangeType;
   @ApiModelProperty("食堂id")
   private Long canteenId;
   @ApiModelProperty("档口id")
   private Long stallId;
   @ApiModelProperty("设备sn")
   private String deviceSn;
   @ApiModelProperty("自定义唯一sn")
   private String customSn;
   @ApiModelProperty("餐次id")
   private Integer mealtimeType;
   @ApiModelProperty("部门id")
   private Long orgId;
   @ApiModelProperty("人员类别")
   private Integer psnType;
   @ApiModelProperty("适用年龄段")
   private Integer ageType;
   @ApiModelProperty("适用支付渠道")
   private Integer payChannel;

   public static MarketRuleRangeBuilder builder() {
      return new MarketRuleRangeBuilder();
   }

   public Long getRangeId() {
      return this.rangeId;
   }

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

   public Integer getRangeType() {
      return this.rangeType;
   }

   public Long getCanteenId() {
      return this.canteenId;
   }

   public Long getStallId() {
      return this.stallId;
   }

   public String getDeviceSn() {
      return this.deviceSn;
   }

   public String getCustomSn() {
      return this.customSn;
   }

   public Integer getMealtimeType() {
      return this.mealtimeType;
   }

   public Long getOrgId() {
      return this.orgId;
   }

   public Integer getPsnType() {
      return this.psnType;
   }

   public Integer getAgeType() {
      return this.ageType;
   }

   public Integer getPayChannel() {
      return this.payChannel;
   }

   public void setRangeId(final Long rangeId) {
      this.rangeId = rangeId;
   }

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

   public void setRangeType(final Integer rangeType) {
      this.rangeType = rangeType;
   }

   public void setCanteenId(final Long canteenId) {
      this.canteenId = canteenId;
   }

   public void setStallId(final Long stallId) {
      this.stallId = stallId;
   }

   public void setDeviceSn(final String deviceSn) {
      this.deviceSn = deviceSn;
   }

   public void setCustomSn(final String customSn) {
      this.customSn = customSn;
   }

   public void setMealtimeType(final Integer mealtimeType) {
      this.mealtimeType = mealtimeType;
   }

   public void setOrgId(final Long orgId) {
      this.orgId = orgId;
   }

   public void setPsnType(final Integer psnType) {
      this.psnType = psnType;
   }

   public void setAgeType(final Integer ageType) {
      this.ageType = ageType;
   }

   public void setPayChannel(final Integer payChannel) {
      this.payChannel = payChannel;
   }


   public MarketRuleRange(final Long rangeId, final Long ruleId, final Integer rangeType, final Long canteenId, final Long stallId, final String deviceSn, final String customSn, final Integer mealtimeType, final Long orgId, final Integer psnType, final Integer ageType, final Integer payChannel) {
      this.rangeId = rangeId;
      this.ruleId = ruleId;
      this.rangeType = rangeType;
      this.canteenId = canteenId;
      this.stallId = stallId;
      this.deviceSn = deviceSn;
      this.customSn = customSn;
      this.mealtimeType = mealtimeType;
      this.orgId = orgId;
      this.psnType = psnType;
      this.ageType = ageType;
      this.payChannel = payChannel;
   }

   public MarketRuleRange() {
   }

   public static class MarketRuleRangeBuilder {
      private Long rangeId;
      private Long ruleId;
      private Integer rangeType;
      private Long canteenId;
      private Long stallId;
      private String deviceSn;
      private String customSn;
      private Integer mealtimeType;
      private Long orgId;
      private Integer psnType;
      private Integer ageType;
      private Integer payChannel;

      MarketRuleRangeBuilder() {
      }

      public MarketRuleRangeBuilder rangeId(final Long rangeId) {
         this.rangeId = rangeId;
         return this;
      }

      public MarketRuleRangeBuilder ruleId(final Long ruleId) {
         this.ruleId = ruleId;
         return this;
      }

      public MarketRuleRangeBuilder rangeType(final Integer rangeType) {
         this.rangeType = rangeType;
         return this;
      }

      public MarketRuleRangeBuilder canteenId(final Long canteenId) {
         this.canteenId = canteenId;
         return this;
      }

      public MarketRuleRangeBuilder stallId(final Long stallId) {
         this.stallId = stallId;
         return this;
      }

      public MarketRuleRangeBuilder deviceSn(final String deviceSn) {
         this.deviceSn = deviceSn;
         return this;
      }

      public MarketRuleRangeBuilder customSn(final String customSn) {
         this.customSn = customSn;
         return this;
      }

      public MarketRuleRangeBuilder mealtimeType(final Integer mealtimeType) {
         this.mealtimeType = mealtimeType;
         return this;
      }

      public MarketRuleRangeBuilder orgId(final Long orgId) {
         this.orgId = orgId;
         return this;
      }

      public MarketRuleRangeBuilder psnType(final Integer psnType) {
         this.psnType = psnType;
         return this;
      }

      public MarketRuleRangeBuilder ageType(final Integer ageType) {
         this.ageType = ageType;
         return this;
      }

      public MarketRuleRangeBuilder payChannel(final Integer payChannel) {
         this.payChannel = payChannel;
         return this;
      }

      public MarketRuleRange build() {
         return new MarketRuleRange(this.rangeId, this.ruleId, this.rangeType, this.canteenId, this.stallId, this.deviceSn, this.customSn, this.mealtimeType, this.orgId, this.psnType, this.ageType, this.payChannel);
      }

      public String toString() {
         return "MarketRuleRange.MarketRuleRangeBuilder(rangeId=" + this.rangeId + ", ruleId=" + this.ruleId + ", rangeType=" + this.rangeType + ", canteenId=" + this.canteenId + ", stallId=" + this.stallId + ", deviceSn=" + this.deviceSn + ", customSn=" + this.customSn + ", mealtimeType=" + this.mealtimeType + ", orgId=" + this.orgId + ", psnType=" + this.psnType + ", ageType=" + this.ageType + ", payChannel=" + this.payChannel + ")";
      }
   }
}
