package com.bonus.core.account.v3.app.vo;

import cn.hutool.core.util.ObjectUtil;
import com.bonus.core.account.v3.constants.AccStatusEnum;
import com.bonus.core.common.encrypt.LeNiuDecryptDataProcess;
import com.bonus.core.common.encrypt.LeNiuDecryptField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@LeNiuDecryptDataProcess
@Data
public class AppWorkAccInfoVO {
   @ApiModelProperty("人员id")
   private Long custId;
   @ApiModelProperty("编号")
   private String custNum;
   @ApiModelProperty("姓名")
   @LeNiuDecryptField
   private String custName;
   @ApiModelProperty("手机号")
   @LeNiuDecryptField
   private String mobile;
   @ApiModelProperty("组织全称")
   private String orgFullName;
   @ApiModelProperty("人员类别名称")
   private String psnTypeName;
   @ApiModelProperty("账户余额")
   private BigDecimal accBalTotal;
   @ApiModelProperty("账户可用总余额(不包含冻结金额)")
   private BigDecimal accAvailableBal;
   @ApiModelProperty("个人钱包余额/分")
   private BigDecimal walletBal;
   @ApiModelProperty("补贴钱包余额/分")
   private BigDecimal subsidyBal;
   @ApiModelProperty("红包余额")
   private BigDecimal redEnvelope;
   @ApiModelProperty("冻结金额")
   private BigDecimal accFreezeBalTotal;
   @ApiModelProperty("个人钱包冻结金额")
   private BigDecimal frozenWallet;
   @ApiModelProperty("补贴冻结金额")
   private BigDecimal frozenSub;
   @ApiModelProperty("账户有效期")
   private LocalDate endDate;
   @ApiModelProperty("账户状态 1正常  2冻结  3销户 4过期")
   private Integer accStatus;
   @ApiModelProperty("账户状态名称")
   private String accStatusName;

   public String getAccStatusName() {
      return ObjectUtil.isNotNull(this.accStatus) ? AccStatusEnum.getDesc(this.accStatus) : this.accStatusName;
   }

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

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

   public String getCustName() {
      return this.custName;
   }

   public String getMobile() {
      return this.mobile;
   }

   public String getOrgFullName() {
      return this.orgFullName;
   }

   public String getPsnTypeName() {
      return this.psnTypeName;
   }

   public BigDecimal getAccBalTotal() {
      return this.accBalTotal;
   }

   public BigDecimal getAccAvailableBal() {
      return this.accAvailableBal;
   }

   public BigDecimal getWalletBal() {
      return this.walletBal;
   }

   public BigDecimal getSubsidyBal() {
      return this.subsidyBal;
   }

   public BigDecimal getRedEnvelope() {
      return this.redEnvelope;
   }

   public BigDecimal getAccFreezeBalTotal() {
      return this.accFreezeBalTotal;
   }

   public BigDecimal getFrozenWallet() {
      return this.frozenWallet;
   }

   public BigDecimal getFrozenSub() {
      return this.frozenSub;
   }

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

   public Integer getAccStatus() {
      return this.accStatus;
   }

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

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

   public void setCustName(final String custName) {
      this.custName = custName;
   }

   public void setMobile(final String mobile) {
      this.mobile = mobile;
   }

   public void setOrgFullName(final String orgFullName) {
      this.orgFullName = orgFullName;
   }

   public void setPsnTypeName(final String psnTypeName) {
      this.psnTypeName = psnTypeName;
   }

   public void setAccBalTotal(final BigDecimal accBalTotal) {
      this.accBalTotal = accBalTotal;
   }

   public void setAccAvailableBal(final BigDecimal accAvailableBal) {
      this.accAvailableBal = accAvailableBal;
   }

   public void setWalletBal(final BigDecimal walletBal) {
      this.walletBal = walletBal;
   }

   public void setSubsidyBal(final BigDecimal subsidyBal) {
      this.subsidyBal = subsidyBal;
   }

   public void setRedEnvelope(final BigDecimal redEnvelope) {
      this.redEnvelope = redEnvelope;
   }

   public void setAccFreezeBalTotal(final BigDecimal accFreezeBalTotal) {
      this.accFreezeBalTotal = accFreezeBalTotal;
   }

   public void setFrozenWallet(final BigDecimal frozenWallet) {
      this.frozenWallet = frozenWallet;
   }

   public void setFrozenSub(final BigDecimal frozenSub) {
      this.frozenSub = frozenSub;
   }

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

   public void setAccStatus(final Integer accStatus) {
      this.accStatus = accStatus;
   }

   public void setAccStatusName(final String accStatusName) {
      this.accStatusName = accStatusName;
   }




}
