package com.gree.mall.manager.bean.workorder;

import com.gree.mall.manager.annotation.ZfireField;
import com.gree.mall.manager.enums.material.OrderUseTypeEnum;
import com.gree.mall.manager.enums.workorder.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel
@Data
@ZfireField(tbName = "a")
public class SettleOrderVO {

    @ZfireField(hide = true)
    @ApiModelProperty(value = "id")
    private String id;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "惩罚单id")
    private String punishOrderId;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "商户编号")
    private String companyWechatId;

    @ApiModelProperty(value = "商户名称")
    private String companyWechatName;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "网点编号")
    private String websitId;

    @ApiModelProperty(value = "网点名称")
    private String websitName;

    @ApiModelProperty(value = "工单编号")
    private String orderBaseId;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "客户电话")
    private String customerMobile;

    @ApiModelProperty(value = "详细地址")
    private String customerAddress;

    @ApiModelProperty(value = "工单状态")
    private OrderBaseStatusEnum orderStatus;

    @ApiModelProperty(value = "工程师信息")
    private String workerName;

    @ApiModelProperty(value = "联系电话")
    private String workerMobile;

    @ApiModelProperty(value = "身份证")
    private String workerIdcard;

    @ApiModelProperty(value = "工单创建时间")
    private Date orderCreateTime;

    @ApiModelProperty(value = "师傅完工时间")
    private Date workerEndTime;

    @ApiModelProperty(value = "工单类型")
    private OrderTypeEnum orderType;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "内部来源")
    private String orderSource;

    @ApiModelProperty(value = "工单来源")
    private String orderChannel;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "大类编号")
    private String parentCategoryId;

    @ApiModelProperty(value = "大类名称")
    private String parentCategoryName;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "小类编号")
    private String categoryId;

    @ApiModelProperty(value = "小类名称")
    private String categoryName;

    @ApiModelProperty(value = "机型名称")
    private String goodsName;

    @ApiModelProperty(value = "工单数量")
    private Integer orderNum;

    @ApiModelProperty(value = "结算单类型")
    private SettleNormTypeEnum settleOrderType;

    @ApiModelProperty(value = "安装功率")
    private String installLabel;

    @ApiModelProperty(value = "安装结算标准")
    private BigDecimal installNormAmount;

    @ApiModelProperty(value = "维修质保类型")
    private OrderUseTypeEnum repairLabel;

    @ApiModelProperty(value = "维修上门费")
    private BigDecimal repairAmount;

    @ApiModelProperty(value = "维修费用结算比例")
    private BigDecimal repairRate;

    @ApiModelProperty(value = "维修结算费用")
    private BigDecimal repairSettleAmount;

    @ApiModelProperty(value = "其它费用类型")
    private String otherType;

    @ApiModelProperty(value = "其它费用规格")
    private String otherLabel;

    @ApiModelProperty(value = "其它费用单价")
    private BigDecimal otherPrice;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "奖罚单id")
    private String examineProjectId;

    @ApiModelProperty(value = "奖罚单考核项目")
    private String examineProject;

    @ApiModelProperty(value = "奖罚单考核类型")
    private ExamineProjectTypeEnum examineType;

    @ApiModelProperty(value = "结算数量")
    private Integer settleNum;

    @ApiModelProperty(value = "师傅结算费用")
    private BigDecimal settleAmount;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "创建人")
    private String createBy;

    @ApiModelProperty(value = "结算单创建时间")
    private Date createTime;

    @ApiModelProperty(value = "汇总状态")
    private PoolStatusEnum poolStatus;

    @ApiModelProperty(value = "汇总人")
    private String poolBy;

    @ApiModelProperty(value = "汇总时间")
    private Date poolTime;

    @ApiModelProperty(value = "最后驳回人")
    private String lastCancelBy;

    @ApiModelProperty(value = "最后驳回时间")
    private Date lastCancelTime;
}
