package com.bonus.canteen.core.report.statistics.order.basic.model;

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

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

@TableName("report_order_info")
@ApiModel("报表订单表")
public class ReportOrderInfo implements Serializable {
   private static final long serialVersionUID = 1L;
   @ApiModelProperty("订单id")
   @TableId
   private Long orderId;
   @ApiModelProperty("设备sn")
   private String machineSn;
   @ApiModelProperty("组织id")
   private Long orgId;
   @ApiModelProperty("人员id")
   private Long custId;
   @ApiModelProperty("核身方式 1 刷卡 2 刷脸 3 扫码")
   private Integer nuClearMode;
   @ApiModelProperty("来源类型")
   private Integer sourceType;
   @ApiModelProperty("是否在线订单 1 是 2 否")
   private Integer ifOnline;
   @ApiModelProperty("食堂id")
   private Long canteenId;
   @ApiModelProperty("档口id")
   private Long stallId;
   @ApiModelProperty("餐次类型")
   private Integer mealtimeType;
   @ApiModelProperty("人员类别")
   private Integer psnType;
   @ApiModelProperty("应付金额  分")
   private BigDecimal payableAmount;
   @ApiModelProperty("优惠金额 分 (餐券抵扣金额不算优惠金额)")
   private BigDecimal discountsAmount;
   @ApiModelProperty("配送费 分")
   private BigDecimal deliveryAmount;
   @ApiModelProperty("包装费 分")
   private BigDecimal packingAmount;
   @ApiModelProperty("实付金额 分")
   private BigDecimal realAmount;
   @ApiModelProperty("账户支付金额 分")
   private BigDecimal accPayAmount;
   @ApiModelProperty("外部支付金额 分（除账户外）")
   private BigDecimal outPayAmount;
   @ApiModelProperty("累计退款金额 分")
   private BigDecimal refundAmount;
   @ApiModelProperty("下单时间 yyyy-MM-dd HH:mm:ss")
   private LocalDateTime orderTime;
   @ApiModelProperty("就餐日期")
   private LocalDate orderDate;
   @ApiModelProperty("订单类型 1 当餐 2 预订餐 3 报餐 4 扫码点餐 5 餐桌 6 自助餐 11 商城 12 超市 21 补扣 22 外部订单")
   private Integer orderType;
   @ApiModelProperty("订单退款状态 1 未退单 2 已退单 3 部分退单")
   private Integer orderRefundState;
   @ApiModelProperty("支付时间 yyyy-MM-dd HH:mm:ss（退款的审核时间就是支付时间）")
   private LocalDateTime payTime;
   @ApiModelProperty("支付方式")
   private Integer payType;
   @ApiModelProperty("支付渠道")
   private Integer payChannel;
   @ApiModelProperty("订单备注")
   private String remark;
   @ApiModelProperty("消息是否消费成功")
   private Integer consumeFlag;
   @ApiModelProperty("外部交易流水号")
   private String outTradeNo;
   @ApiModelProperty("适用年龄段，参照枚举CustAgeEnum")
   private Integer ageType;
   @ApiModelProperty("节假日类型")
   private Integer holidayType;
   @ApiModelProperty("消费状态: 0 未消费 1 已消费")
   private Integer status;

   public Long getOrderId() {
      return this.orderId;
   }

   public String getMachineSn() {
      return this.machineSn;
   }

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

   public Long getCustId() {
      return this.custId;
   }

   public Integer getNuClearMode() {
      return this.nuClearMode;
   }

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

   public Integer getIfOnline() {
      return this.ifOnline;
   }

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

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

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

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

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

   public BigDecimal getDiscountsAmount() {
      return this.discountsAmount;
   }

   public BigDecimal getDeliveryAmount() {
      return this.deliveryAmount;
   }

   public BigDecimal getPackingAmount() {
      return this.packingAmount;
   }

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

   public BigDecimal getAccPayAmount() {
      return this.accPayAmount;
   }

   public BigDecimal getOutPayAmount() {
      return this.outPayAmount;
   }

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

   public LocalDateTime getOrderTime() {
      return this.orderTime;
   }

   public LocalDate getOrderDate() {
      return this.orderDate;
   }

   public Integer getOrderType() {
      return this.orderType;
   }

   public Integer getOrderRefundState() {
      return this.orderRefundState;
   }

   public LocalDateTime getPayTime() {
      return this.payTime;
   }

   public Integer getPayType() {
      return this.payType;
   }

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

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

   public Integer getConsumeFlag() {
      return this.consumeFlag;
   }

   public String getOutTradeNo() {
      return this.outTradeNo;
   }

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

   public Integer getHolidayType() {
      return this.holidayType;
   }

   public Integer getStatus() {
      return this.status;
   }

   public ReportOrderInfo setOrderId(final Long orderId) {
      this.orderId = orderId;
      return this;
   }

   public ReportOrderInfo setMachineSn(final String machineSn) {
      this.machineSn = machineSn;
      return this;
   }

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

   public ReportOrderInfo setCustId(final Long custId) {
      this.custId = custId;
      return this;
   }

   public ReportOrderInfo setNuClearMode(final Integer nuClearMode) {
      this.nuClearMode = nuClearMode;
      return this;
   }

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

   public ReportOrderInfo setIfOnline(final Integer ifOnline) {
      this.ifOnline = ifOnline;
      return this;
   }

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

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

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

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

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

   public ReportOrderInfo setDiscountsAmount(final BigDecimal discountsAmount) {
      this.discountsAmount = discountsAmount;
      return this;
   }

   public ReportOrderInfo setDeliveryAmount(final BigDecimal deliveryAmount) {
      this.deliveryAmount = deliveryAmount;
      return this;
   }

   public ReportOrderInfo setPackingAmount(final BigDecimal packingAmount) {
      this.packingAmount = packingAmount;
      return this;
   }

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

   public ReportOrderInfo setAccPayAmount(final BigDecimal accPayAmount) {
      this.accPayAmount = accPayAmount;
      return this;
   }

   public ReportOrderInfo setOutPayAmount(final BigDecimal outPayAmount) {
      this.outPayAmount = outPayAmount;
      return this;
   }

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

   public ReportOrderInfo setOrderTime(final LocalDateTime orderTime) {
      this.orderTime = orderTime;
      return this;
   }

   public ReportOrderInfo setOrderDate(final LocalDate orderDate) {
      this.orderDate = orderDate;
      return this;
   }

   public ReportOrderInfo setOrderType(final Integer orderType) {
      this.orderType = orderType;
      return this;
   }

   public ReportOrderInfo setOrderRefundState(final Integer orderRefundState) {
      this.orderRefundState = orderRefundState;
      return this;
   }

   public ReportOrderInfo setPayTime(final LocalDateTime payTime) {
      this.payTime = payTime;
      return this;
   }

   public ReportOrderInfo setPayType(final Integer payType) {
      this.payType = payType;
      return this;
   }

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

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

   public ReportOrderInfo setConsumeFlag(final Integer consumeFlag) {
      this.consumeFlag = consumeFlag;
      return this;
   }

   public ReportOrderInfo setOutTradeNo(final String outTradeNo) {
      this.outTradeNo = outTradeNo;
      return this;
   }

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

   public ReportOrderInfo setHolidayType(final Integer holidayType) {
      this.holidayType = holidayType;
      return this;
   }

   public ReportOrderInfo setStatus(final Integer status) {
      this.status = status;
      return this;
   }

   public ReportOrderInfo() {
   }

   public ReportOrderInfo(final Long orderId, final String machineSn, final Long orgId, final Long custId, final Integer nuClearMode, final Integer sourceType, final Integer ifOnline, final Long canteenId, final Long stallId, final Integer mealtimeType, final Integer psnType, final BigDecimal payableAmount, final BigDecimal discountsAmount, final BigDecimal deliveryAmount, final BigDecimal packingAmount, final BigDecimal realAmount, final BigDecimal accPayAmount, final BigDecimal outPayAmount, final BigDecimal refundAmount, final LocalDateTime orderTime, final LocalDate orderDate, final Integer orderType, final Integer orderRefundState, final LocalDateTime payTime, final Integer payType, final Integer payChannel, final String remark, final Integer consumeFlag, final String outTradeNo, final Integer ageType, final Integer holidayType, final Integer status) {
      this.orderId = orderId;
      this.machineSn = machineSn;
      this.orgId = orgId;
      this.custId = custId;
      this.nuClearMode = nuClearMode;
      this.sourceType = sourceType;
      this.ifOnline = ifOnline;
      this.canteenId = canteenId;
      this.stallId = stallId;
      this.mealtimeType = mealtimeType;
      this.psnType = psnType;
      this.payableAmount = payableAmount;
      this.discountsAmount = discountsAmount;
      this.deliveryAmount = deliveryAmount;
      this.packingAmount = packingAmount;
      this.realAmount = realAmount;
      this.accPayAmount = accPayAmount;
      this.outPayAmount = outPayAmount;
      this.refundAmount = refundAmount;
      this.orderTime = orderTime;
      this.orderDate = orderDate;
      this.orderType = orderType;
      this.orderRefundState = orderRefundState;
      this.payTime = payTime;
      this.payType = payType;
      this.payChannel = payChannel;
      this.remark = remark;
      this.consumeFlag = consumeFlag;
      this.outTradeNo = outTradeNo;
      this.ageType = ageType;
      this.holidayType = holidayType;
      this.status = status;
   }
}
