package com.bonus.core.report.statistics.param;

import com.bonus.core.common.page.PageDTO;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@ApiModel("报表查询基础入参")
public class ReportBaseParam {
   @ApiModelProperty("分页参数")
   public PageDTO page;
   @ApiModelProperty("开始时间，以订单支付时间为准")
   public LocalDate startDate;
   @ApiModelProperty("结束时间，以订单支付时间为准")
   public LocalDate endDate;
   @ApiModelProperty("需要导出列")
   public List<String> exportCols;
   @ApiModelProperty("汇总类型：1-按时间段 2-按日期")
   public Integer sumType;
   @ApiModelProperty("适用年龄段，参照枚举CustAgeEnum")
   public List<Integer> ageTypes;
   @ApiModelProperty("节假日类型")
   private List<Integer> holidayTypeList;
   @ApiModelProperty("统计维度：1-组织 2-按用户类别 3-按食堂档口 4-按设备 5-按支付渠道 6-按餐次")
   public Integer sumDimension;
   @JsonIgnore
   private LocalDateTime startPayTime;
   @JsonIgnore
   private LocalDateTime endPayTime;
   private LocalDateTime minPayTime;
   private LocalDateTime maxPayTime;
   @ApiModelProperty("开始时间，以订单就餐时间为准")
   public LocalDate startOrderDate;
   @ApiModelProperty("结束时间，以订单就餐时间为准")
   public LocalDate endOrderDate;

   public void setStartDate(LocalDate startDate) {
      this.startDate = startDate;
   }

   public void setEndDate(LocalDate endDate) {
      this.endDate = endDate;
   }

   public PageDTO getPage() {
      return this.page;
   }

   public LocalDate getStartDate() {
      return this.startDate;
   }

   public LocalDate getEndDate() {
      return this.endDate;
   }

   public List<String> getExportCols() {
      return this.exportCols;
   }

   public Integer getSumType() {
      return this.sumType;
   }

   public List<Integer> getAgeTypes() {
      return this.ageTypes;
   }

   public List<Integer> getHolidayTypeList() {
      return this.holidayTypeList;
   }

   public Integer getSumDimension() {
      return this.sumDimension;
   }

   public LocalDateTime getStartPayTime() {
      return this.startPayTime;
   }

   public LocalDateTime getEndPayTime() {
      return this.endPayTime;
   }

   public LocalDateTime getMinPayTime() {
      return this.minPayTime;
   }

   public LocalDateTime getMaxPayTime() {
      return this.maxPayTime;
   }

   public LocalDate getStartOrderDate() {
      return this.startOrderDate;
   }

   public LocalDate getEndOrderDate() {
      return this.endOrderDate;
   }

   public void setPage(final PageDTO page) {
      this.page = page;
   }

   public void setExportCols(final List<String> exportCols) {
      this.exportCols = exportCols;
   }

   public void setSumType(final Integer sumType) {
      this.sumType = sumType;
   }

   public void setAgeTypes(final List<Integer> ageTypes) {
      this.ageTypes = ageTypes;
   }

   public void setHolidayTypeList(final List<Integer> holidayTypeList) {
      this.holidayTypeList = holidayTypeList;
   }

   public void setSumDimension(final Integer sumDimension) {
      this.sumDimension = sumDimension;
   }

   @JsonIgnore
   public void setStartPayTime(final LocalDateTime startPayTime) {
      this.startPayTime = startPayTime;
   }

   @JsonIgnore
   public void setEndPayTime(final LocalDateTime endPayTime) {
      this.endPayTime = endPayTime;
   }

   public void setMinPayTime(final LocalDateTime minPayTime) {
      this.minPayTime = minPayTime;
   }

   public void setMaxPayTime(final LocalDateTime maxPayTime) {
      this.maxPayTime = maxPayTime;
   }

   public void setStartOrderDate(final LocalDate startOrderDate) {
      this.startOrderDate = startOrderDate;
   }

   public void setEndOrderDate(final LocalDate endOrderDate) {
      this.endOrderDate = endOrderDate;
   }

}
