package com.bonus.core.pay.common.dto;

import com.bonus.core.marketing.dto.MktTimeQuotaPayDTO;
import com.bonus.core.order.deprecated.param.OrderDetailParam;
import com.fasterxml.jackson.databind.JsonNode;

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

public class PayParamDTO {
   private Long tradeId;
   private String macOrdId;
   private String authCode;
   private String terminalParams;
   private String serialNum;
   private String thirdSerialNum;
   private Integer amount;
   private Long custId;
   private String custThirdId;
   private String custNum;
   private String openid;
   private Integer onlineState = 1;
   private Integer payType;
   private Integer sourceType;
   private String machineSn;
   private Long canteenId;
   private Long shopstallId;
   private Long intervalId;
   private String attach;
   private String remark;
   private List<OrderDetailParam> ordDetailList;
   private MktTimeQuotaPayDTO mktTimeQuotaPayDTO;
   private LocalDateTime ordTime;
   private Long ordTimestamp;
   private String mchNum;
   private Integer nuClearMode;
   private Integer cardNum;
   private String reserved1;
   private JsonNode extParam;

   public Long getOrdTimestamp() {
      return this.ordTime != null ? this.ordTime.toInstant(ZoneOffset.of("+8")).toEpochMilli() : System.currentTimeMillis();
   }

   public Long getTradeId() {
      return this.tradeId;
   }

   public String getMacOrdId() {
      return this.macOrdId;
   }

   public String getAuthCode() {
      return this.authCode;
   }

   public String getTerminalParams() {
      return this.terminalParams;
   }

   public String getSerialNum() {
      return this.serialNum;
   }

   public String getThirdSerialNum() {
      return this.thirdSerialNum;
   }

   public Integer getAmount() {
      return this.amount;
   }

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

   public String getCustThirdId() {
      return this.custThirdId;
   }

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

   public String getOpenid() {
      return this.openid;
   }

   public Integer getOnlineState() {
      return this.onlineState;
   }

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

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

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

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

   public Long getShopstallId() {
      return this.shopstallId;
   }

   public Long getIntervalId() {
      return this.intervalId;
   }

   public String getAttach() {
      return this.attach;
   }

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

   public List<OrderDetailParam> getOrdDetailList() {
      return this.ordDetailList;
   }

   public MktTimeQuotaPayDTO getMktTimeQuotaPayDTO() {
      return this.mktTimeQuotaPayDTO;
   }

   public LocalDateTime getOrdTime() {
      return this.ordTime;
   }

   public String getMchNum() {
      return this.mchNum;
   }

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

   public Integer getCardNum() {
      return this.cardNum;
   }

   public String getReserved1() {
      return this.reserved1;
   }

   public JsonNode getExtParam() {
      return this.extParam;
   }

   public void setTradeId(final Long tradeId) {
      this.tradeId = tradeId;
   }

   public void setMacOrdId(final String macOrdId) {
      this.macOrdId = macOrdId;
   }

   public void setAuthCode(final String authCode) {
      this.authCode = authCode;
   }

   public void setTerminalParams(final String terminalParams) {
      this.terminalParams = terminalParams;
   }

   public void setSerialNum(final String serialNum) {
      this.serialNum = serialNum;
   }

   public void setThirdSerialNum(final String thirdSerialNum) {
      this.thirdSerialNum = thirdSerialNum;
   }

   public void setAmount(final Integer amount) {
      this.amount = amount;
   }

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

   public void setCustThirdId(final String custThirdId) {
      this.custThirdId = custThirdId;
   }

   public void setCustNum(final String custNum) {
      this.custNum = custNum;
   }

   public void setOpenid(final String openid) {
      this.openid = openid;
   }

   public void setOnlineState(final Integer onlineState) {
      this.onlineState = onlineState;
   }

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

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

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

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

   public void setShopstallId(final Long shopstallId) {
      this.shopstallId = shopstallId;
   }

   public void setIntervalId(final Long intervalId) {
      this.intervalId = intervalId;
   }

   public void setAttach(final String attach) {
      this.attach = attach;
   }

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

   public void setOrdDetailList(final List<OrderDetailParam> ordDetailList) {
      this.ordDetailList = ordDetailList;
   }

   public void setMktTimeQuotaPayDTO(final MktTimeQuotaPayDTO mktTimeQuotaPayDTO) {
      this.mktTimeQuotaPayDTO = mktTimeQuotaPayDTO;
   }

   public void setOrdTime(final LocalDateTime ordTime) {
      this.ordTime = ordTime;
   }

   public void setOrdTimestamp(final Long ordTimestamp) {
      this.ordTimestamp = ordTimestamp;
   }

   public void setMchNum(final String mchNum) {
      this.mchNum = mchNum;
   }

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

   public void setCardNum(final Integer cardNum) {
      this.cardNum = cardNum;
   }

   public void setReserved1(final String reserved1) {
      this.reserved1 = reserved1;
   }

   public void setExtParam(final JsonNode extParam) {
      this.extParam = extParam;
   }
}
