package com.maintain.business.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.maintain.common.annotation.ExcelDictFormat;
import com.maintain.common.convert.ExcelDictConvert;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 报修单视图对象 erp_repair_form
 *
 * @author liushuai
 * @date 2025-04-01
 */
@Data
@ExcelIgnoreUnannotated
public class ErpRepairSettlementFormVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 报修单号
     */
    @ExcelProperty(value = "报修单号")
    private String repairNumber;

    /**
     * 客户类型（1个人客户 2企业客户）
     */
    @ExcelProperty(value = "客户类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "client_type")
    private Integer clientType;

    /**
     * 客户名称
     */
    @ExcelProperty(value = "客户名称")
    private String clientName;

    /**
     * 联系方式
     */
    @ExcelProperty(value = "联系方式")
    private String clientPhone;

    /**
     * 车牌号
     */
    @ExcelProperty(value = "车牌号")
    private String plateNumber;

    /**
     * 汇总工时
     */
    @ExcelProperty(value = "总工时")
    private BigDecimal totalActualTime;

    /**
     * 工时费用
     */
    @ExcelProperty(value = "工时费用（元）")
    private BigDecimal totalActualTimeMoney;

    /**
     * 材料费用
     */
    @ExcelProperty(value = "材料费用（元）")
    private BigDecimal totalMaterialMoney;

    /**
     * 拖车费用
     */
    @ExcelProperty(value = "拖车费用（元）")
    private BigDecimal trailerMoney;

    /**
     * 结算总价(拖车+工时+材料)
     */
    @ExcelProperty(value = "结算总价（元）")
    private BigDecimal totalMoney;

    /**
     * 交车时间
     */
    @ExcelProperty(value = "交工时间")
    @ColumnWidth(20)
    private Date deliveryTime;

    /**
     * 结算时间
     */
    @ExcelProperty(value = "结算时间")
    @ColumnWidth(20)
    private Date settlementTime;

    /**
     * 创建人
     */
    @ExcelProperty(value = "登记人")
    private String createBy;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "登记时间")
    @ColumnWidth(20)
    private Date createTime;

    /**
     * 是否交车（0否 1是 默认0）
     */
    @ExcelProperty(value = "是否交车", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "repair_form_is_delivery")
    private Integer isDelivery;

    /**
     * 状态（1维修中 2维修结束 3作废）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "repair_form_state")
    private Integer state;

    /**
     * 结算状态（1待结算 2待确认 3已确认）
     */
    @ExcelProperty(value = "结算状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "repair_form_settlement_state")
    private Integer settlementState;

}
