package com.hzs.system.config.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @Description:
 * @Author: sui q
 * @Time: 2022/9/6 10:14
 * @Classname: AreaCurrencyDto
 * @PackageName: com.hzs.system.config.dto
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class AreaCurrencyDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 特殊消费配置类型 主键
     */
    private Integer pkId;

    private Integer pkSpecialCurrency;
    /**
     * 所属专区
     */
    private Integer specialArea;

    /**
     * 账户名称
     */
    private String accountName;

    /**
     * 账户类型
     */
    private Integer pkAccount;

    /**
     * 扣除顺序
     */
    private Integer deductSort;

    /**
     * 扣除比例
     */
    private BigDecimal deductRatio;

    /**
     * 扣款最大比例
     */
    private BigDecimal deductMaxRatio;

    /**
     * 扣款最大比例金额
     */
    private BigDecimal deductMaxRatioAmount;

    /**
     * 原扣除比例（此字段不会根据特殊情况进行变化）
     */
    private BigDecimal originalDeductRatio;

    /**
     * 是否抵扣账户 (0=是，1=否)
     */
    private Integer isDeduction;

    /**
     * 取值字段
     */
    private Integer fieldValue;

    /**
     * 是否邮费扣除字段0=是,1=否
     */
    private Integer isPostage;

    /**
     * 2023.11.15 需求添加，如果有特殊标记，后续需要单独处理币种赋值
     */
    private Boolean specialFlag = false;
    /**
     * 2023.11.17 需求添加，记录模板名称，用于后续写死判断逻辑使用
     */
    private String tempName;

    /**
     * 扣除比例单独处理，需要记录原始值
     *
     * @param deductRatio
     */
    public void setDeductRatio(BigDecimal deductRatio) {
        this.deductRatio = deductRatio;
        if (null == originalDeductRatio) {
            this.originalDeductRatio = deductRatio;
        }
    }

}
