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

import cn.iocoder.yudao.module.order.vo.order.OrderBackVO;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.framework.excel.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.convert.DictConvert;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 订单费用申请 Response VO
* @author 系统管理员
*/
@Data
@ApiModel("管理后台 - 订单费用申请 Response VO")
public class OrderFeeApplicationBackVO {

    @ExcelProperty("主键ID")
    @ApiModelProperty(value = "主键ID", required = true)
    private Long id;

    @ExcelProperty("订单id")
    @ApiModelProperty(value = "订单id", required = true)
    private Long orderId;

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

    @ExcelProperty("费用申请金额")
    @ApiModelProperty(value = "费用申请金额", required = true)
    private java.math.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;

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

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

    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "创建时间", required = true)
    private Date createTime;

    @ExcelProperty("费用申请人ID")
    @ApiModelProperty(value = "费用申请人ID")
    private Long applicationId;

    @ExcelProperty("费用申请人名称")
    @ApiModelProperty(value = "费用申请人名称")
    private String applicationAuthor;

    @ExcelProperty("审核ID")
    @ApiModelProperty(value = "审核ID")
    private Integer sid;

    @ExcelProperty("审核人")
    @ApiModelProperty(value = "审核人")
    private String shenhe;

    @ExcelProperty("审核时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "审核时间")
    private Date shenhetime;

    @ExcelProperty("状态")
    @ApiModelProperty(value = "状态")
    private Integer status;

    @ExcelProperty("回复")
    @ApiModelProperty(value = "回复")
    private String huifu;

    @ExcelProperty("审批流程编号")
    @ApiModelProperty(value = "审批流程编号")
    private String bpmProcessId;

    @ApiModelProperty(value = "始发仓")
    private String startWarehouse;

    @ApiModelProperty(value = "目的仓")
    private String destWarehouse;

    @ApiModelProperty(value = "订单信息")
    private OrderBackVO orderBackVO;
}
