package cn.iocoder.yudao.module.order.vo.batchOrderFeeApply;

import cn.iocoder.yudao.framework.excel.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

@Data
@ApiModel("费用明细")
public class BatchFeeDetailsVO {

    @ExcelProperty(value = "费用类型", converter = DictConvert.class)
    @DictFormat("fee_type") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    @ApiModelProperty(value = "费用类型", required = true)
    private Integer feeType;

    @ExcelProperty("费用申请金额")
    @ApiModelProperty(value = "费用申请金额", required = true)
    private BigDecimal applicationFee;

    @ExcelProperty(value = "费用申请货币类型", converter = DictConvert.class)
    @ApiModelProperty(value = "费用申请货币类型", required = true)
    private Integer applicationFeeCurrency;

    @ExcelProperty(value = "付款类型", converter = DictConvert.class)
    @DictFormat("pay_type") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    @ApiModelProperty(value = "付款类型", required = true)
    private Integer payType;

    @ApiModelProperty(value = "付款人：0 按订单 1 发货人 2 收货人", required = true)
    private Integer payer;

    @ApiModelProperty(value = "计量单位：计量单位\n" +
            "票，指的是每个订单都添加加同样金额的费用\n" +
            "收费体积：按订单的收费体积计算，金额是单价，例如订单收费体积是34m³，则订单添加的清关费金额=170,000\n" +
            "入仓体积：按订单的入仓体积计算，金额是单价，例如订单收费体积是34m³，则订单添加的清关费金额=170,000\n" +
            "收费重量：按订单的入仓体积计算，金额是单价，例如订单收费体积是34KG，则订单添加的清关费金额=170,000\n" +
            "入仓重量：按订单的入仓体积计算，金额是单价，例如订单收费体积是34KG，则订单添加的清关费金额=170,000", required = true)
    private Integer unitMeasurement;

    @ExcelProperty("备注")
    @ApiModelProperty(value = "备注")
    private String remarks;
}
