package com.bonus.canteen.core.report.statistics.order.summary.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.bonus.canteen.core.common.utils.CustomNumberConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDate;

@ContentRowHeight(25)
@HeadRowHeight(25)
@ColumnWidth(25)
@ApiModel("按设备收入汇总")
public class ReportSumMachineVO {
   @ExcelProperty(
      value = {"统计日期"},
      order = 1
   )
   @ApiModelProperty("统计日期")
   private LocalDate statisticDate;
   @ExcelProperty(
      value = {"设备编号"},
      order = 2
   )
   @ApiModelProperty("设备编号")
   private String deviceNum;
   @ExcelProperty(
      value = {"设备名称"},
      order = 2
   )
   @ApiModelProperty("设备名称")
   private String deviceName;
   @ExcelProperty(
      value = {"消费来源"},
      order = 2
   )
   @ApiModelProperty("消费来源(来源类型-设备类型)")
   private String consumeSource;
   @ApiModelProperty("设备类型")
   private Integer sourceType;
   @ExcelProperty(
      value = {"消费人数"},
      order = 3
   )
   @ApiModelProperty("消费人数")
   private Integer custNum;
   @ExcelProperty(
      value = {"消费次数"},
      order = 4
   )
   @ApiModelProperty("消费次数")
   private Integer consumeNum;
   @ExcelProperty(
      value = {"应收金额"},
      order = 5,
      converter = CustomNumberConverter.class
   )
   @ApiModelProperty("应付金额  分")
   private BigDecimal payableAmount;
   @ExcelProperty(
      value = {"上浮/优惠金额"},
      order = 7,
      converter = CustomNumberConverter.class
   )
   @ApiModelProperty("优惠金额 分 (餐券抵扣金额不算优惠金额)")
   private BigDecimal discountAmount;
   @ExcelProperty(
      value = {"实收金额(元)"},
      order = 8,
      converter = CustomNumberConverter.class
   )
   @ApiModelProperty("实付金额 分 （报表中消费退款为负数）")
   private BigDecimal realAmount;
   @ExcelProperty(
      value = {"退款金额(元)"},
      order = 9,
      converter = CustomNumberConverter.class
   )
   @ApiModelProperty("退款金额 分")
   private BigDecimal refundAmount;
   @ExcelProperty(
      value = {"合计金额(元)"},
      order = 10,
      converter = CustomNumberConverter.class
   )
   @ApiModelProperty("合计金额 分")
   private BigDecimal totalAmount;

   public LocalDate getStatisticDate() {
      return this.statisticDate;
   }

   public String getDeviceNum() {
      return this.deviceNum;
   }

   public String getDeviceName() {
      return this.deviceName;
   }

   public String getConsumeSource() {
      return this.consumeSource;
   }

   public Integer getSourceType() {
      return this.sourceType;
   }

   public Integer getCustNum() {
      return this.custNum;
   }

   public Integer getConsumeNum() {
      return this.consumeNum;
   }

   public BigDecimal getPayableAmount() {
      return this.payableAmount;
   }

   public BigDecimal getDiscountAmount() {
      return this.discountAmount;
   }

   public BigDecimal getRealAmount() {
      return this.realAmount;
   }

   public BigDecimal getRefundAmount() {
      return this.refundAmount;
   }

   public BigDecimal getTotalAmount() {
      return this.totalAmount;
   }

   public ReportSumMachineVO setStatisticDate(final LocalDate statisticDate) {
      this.statisticDate = statisticDate;
      return this;
   }

   public ReportSumMachineVO setDeviceNum(final String deviceNum) {
      this.deviceNum = deviceNum;
      return this;
   }

   public ReportSumMachineVO setDeviceName(final String deviceName) {
      this.deviceName = deviceName;
      return this;
   }

   public ReportSumMachineVO setConsumeSource(final String consumeSource) {
      this.consumeSource = consumeSource;
      return this;
   }

   public ReportSumMachineVO setSourceType(final Integer sourceType) {
      this.sourceType = sourceType;
      return this;
   }

   public ReportSumMachineVO setCustNum(final Integer custNum) {
      this.custNum = custNum;
      return this;
   }

   public ReportSumMachineVO setConsumeNum(final Integer consumeNum) {
      this.consumeNum = consumeNum;
      return this;
   }

   public ReportSumMachineVO setPayableAmount(final BigDecimal payableAmount) {
      this.payableAmount = payableAmount;
      return this;
   }

   public ReportSumMachineVO setDiscountAmount(final BigDecimal discountAmount) {
      this.discountAmount = discountAmount;
      return this;
   }

   public ReportSumMachineVO setRealAmount(final BigDecimal realAmount) {
      this.realAmount = realAmount;
      return this;
   }

   public ReportSumMachineVO setRefundAmount(final BigDecimal refundAmount) {
      this.refundAmount = refundAmount;
      return this;
   }

   public ReportSumMachineVO setTotalAmount(final BigDecimal totalAmount) {
      this.totalAmount = totalAmount;
      return this;
   }
}
