package org.dromara.work.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.work.domain.TpOrder;

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


/**
 * 订单管理视图对象 tp_order
 *
 * @author Maosw
 * @date 2024-08-12
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TpOrder.class)
public class TpOrderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *ID
     */
    @ExcelProperty(value = "ID")
    private Long id;

    /**
     * 订单编号
     */
    @ExcelProperty(value = "订单编号")
    private String orderId;

    /**
     * 订单客户
     */
//    @ExcelProperty(value = "订单客户")
    private Long kid;

    /**
     * 订单微信
     */
//    @ExcelProperty(value = "订单微信")
    private Long wid;

    /**
     * 订单风格
     */
    @ExcelProperty(value = "订单风格", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "order_style")
    private Long style;

    /**
     * 订单空间
     */
    @ExcelProperty(value = "订单空间", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "order_space")
    private String space;

    /**
     * 订单品质
     */
    @ExcelProperty(value = "订单品质", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "order_quality")
    private Long quality;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 订单类型
     */
    @ExcelProperty(value = "订单类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "order_type")
    private Long type;

    /**
     * 状态(1-默认  2-退款待确认  3-已退款  4-已拒绝)
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1-默认  2-退款待确认  3-已退款  4-已拒绝")
    private Long state;

    /**
     * 图纸数量
     */
    @ExcelProperty(value = "图纸数量")
    private Long num;

    /**
     * 接待客服
     */
//    @ExcelProperty(value = "接待客服")
    private Long sid;

    /**
     * 微信昵称
     */
    @ExcelProperty(value = "微信昵称")
    private String wname;

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

    /**
     * 接待客服名称
     */
    @ExcelProperty(value = "接待客服名称")
    private String sname;

    /**
     * 分图员名称
     */
    @ExcelProperty(value = "分图员名称")
    private String fname;

    /**
     * 表现师名称
     */
    @ExcelProperty(value = "表现师名称")
    private String bname;

    /**
     * 已付比例
     */
    @ExcelProperty(value = "已付比例")
    private String bili;

    /**
     * 分图人员
     */
    @ExcelProperty(value = "分图人员")
    private Long fid;

    /**
     * 表现师编号
     */
    @ExcelProperty(value = "表现师编号")
    private String bid;

    /**
     * 订单价格
     */
    @ExcelProperty(value = "订单价格")
    private BigDecimal price;

    /**
     * 定金
     */
    @ExcelProperty(value = "定金")
    private BigDecimal djPrice;

    /**
     * 技术备注
     */
    @ExcelProperty(value = "技术备注")
    private String jsRemark;

    /**
     * 支付状态（1=待支付，2=尾款待支付，3=已支付）
     */
    @ExcelProperty(value = "支付状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=待支付，2=尾款待支付，3=已支付")
    private Long payState;


    /**
     * 订单状态（1-待支付 2-待接单 3-待确认 4-进行中 5-待评价 6-已完成  7-已取消）
     */
    @ExcelProperty(value = "订单状态")
    private Integer status;

    /**
     * 已付款
     */
    @ExcelProperty(value = "已付款")
    private BigDecimal payPrice;

    /**
     * 尾款
     */
    @ExcelProperty(value = "尾款")
    private BigDecimal endPrice;

    /**
     * 改价价格
     */
    @ExcelProperty(value = "改价价格")
    private BigDecimal gjPrice;

    /**
     * 是否删除（1=未删除，2=已删除）
     */
    @ExcelProperty(value = "是否删除", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=未删除,2=已删除")
    private Long isDel;

    /**
     * 下单时间
     */
    @ExcelProperty(value = "下单时间")
    private Date addTime;

    /**
     * 对图时间
     */
    @ExcelProperty(value = "对图时间")
    private Date dtTime;

    /**
     * 定金支付时间
     */
    @ExcelProperty(value = "定金支付时间")
    private Date djpTime;

    /**
     * 尾款支付时间
     */
    @ExcelProperty(value = "尾款支付时间")
    private Date endpTime;

    /**
     * 完成时间
     */
    @ExcelProperty(value = "完成时间")
    private Date finishTime;

    /**
     * 拆单价格
     */
    @ExcelProperty(value = "拆单价格")
    private BigDecimal cdPrice;

    /**
     * 技术订单价格
     */
    @ExcelProperty(value = "技术订单价格")
    private BigDecimal jsPrice;

    /**
     * 技术已付款
     */
    @ExcelProperty(value = "技术已付款")
    private BigDecimal jsPayPrice;

    /**
     * 是否自动改价（1=否，2=是）
     */
    @ExcelProperty(value = "是否自动改价", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=否,2=是")
    private Long isC;

    /**
     * 自动改价价格
     */
    @ExcelProperty(value = "自动改价价格")
    private BigDecimal zGjPrice;

    /**
     * 客户已付款
     */
    @ExcelProperty(value = "客户已付款")
    private BigDecimal khpay;

    /**
     * 改价已付款
     */
    @ExcelProperty(value = "改价已付款")
    private BigDecimal gpay;

    /**
     * 是否拆单（1=否，2=是）
     */
    @ExcelProperty(value = "是否拆单", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=否,2=是")
    private Long isCd;

    /**
     * 客服已付款
     */
    @ExcelProperty(value = "客服已付款")
    private BigDecimal kfpay;

    /**
     * 客户余额
     */
//    @ExcelProperty(value = "客户余额")
    private BigDecimal khYue;

    /**
     * 客服余额
     */
//    @ExcelProperty(value = "客服余额")
    private BigDecimal kfYue;

    /**
     * 时间戳
     */
    private String timestamp;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * 分类名称
     */
    private String categoryName;

    /**
     * 标记  1-普通  2-高端  3-酷家乐
     */
    private Integer flag;

    /**
     * 图片素材
     */
    private String imgs;

    /**
     * 订单内容
     */
    private String content;

    /**
     * 评价评分
     */
    private Double score;

    /**
     * 评价内容
     */
    private String scoreContent;

}
