package com.zfire.jiasm.syncdata.api;

import com.zfire.jiasm.syncdata.plus.entity.OrderCleanItem;
import com.zfire.jiasm.syncdata.plus.entity.OrderMaterial;
import com.zfire.jiasm.syncdata.plus.entity.OrderProduct;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


@Data
public class OrderAddBeanDTO {
    private String id;
    //操作标记 1=临时保存,2=下派工单   不能为空
    private Integer operatorFlag;
    //客户名称  不能为空
    private String userName;
    //联系人  不能为空
    private String linkName;
    //客户电话  不能为空
    private String userMobile;
    //客户电话2
    private String userMobile2;
    //用户属性
    private String userAttr;
    //用户属性ID
    private String userAttrId;
    //VIP等级
    private String vip;
    //区号
    private String areaCode;
    // 固话
    private String telPhone;
    // 省id  不能为空
    private String provinceId;
    // 省   不能为空
    private String province;
    // 市id   不能为空
    private String cityId;
    // 市   不能为空
    private String city;
    // 区id   不能为空
    private String areaId;
    // 区   不能为空
    private String area;
    // 街道id   不能为空
    private String streetId;
    // 街道   不能为空
    private String street;
    // 详细地址
    private String address;
    // gps地址
    private String gpsAddress;
    // 经度   不能为空
    private String lng;
    // 纬度   不能为空
    private String lat;
    // 服务类目id   不能为空
    private String serviceCategoryId;
    // 工单类型 INSTALL=安装 REPAIR=维修 RECOVERY=回收 RETURN_EXCHANGE=退换货 TRADE_IN=以旧换新 MAINTENANCE=维保工单 CLEAN=清洗保养
    private String orderType;
    // 工单小类 INSTALL=普通工单 LOOK=看位工单 LAYING=铺管工单 CLEAN=清洗保养
    private String orderSmallType;
    // 需求大类
    private String demandTypeId;
    // 需求大类名称
    private String demandTypeName;
    // 需求小类
    private String demandSmallTypeId;
    // 需求小类名称
    private String demandSmallTypeName;
    // 当前工单状态
    private String orderStatus;
    // 产品品牌id
    private String productBrandId;




    // 结算主体id   不能为空
    private String brandId;

    // 产品大类id   不能为空
    private String mainId;
    // 商户网点id 不能为空
    private String saleWebsitId;
    // 商户网点 不能为空
    private String saleWebsitName;
    // 销售单号
    private String saleNo;
    // 销售联系人
    private String saleLinkName;
    // 销售联系人电话
    private String saleLinkPhone;
    // 销售类型
    private String saleTypeId;
    // 销售类型
    private String saleType;
    // 消息来源
    private String infoSourceId;
    // 消息渠道
    private String infoChannelId;
    // 跨区编号
    private String crossNo;
    // 购买时间
    private Date buyTime;
    // 用户期望上门时间开始
    private Date expectStartTime;
    // 用户期望上门结束开始
    private Date expectEndTime;
    // 发票号码
    private String invoiceNo;
    // 营销活动Id
    private String marketActivityId;
    // 营销活动名称
    private String marketActivityName;
    // 是否上传总部
    private Boolean uploadFlag;
    // 特殊要求-师傅标签（传中文名）
    private List<String> labels1;
    // 特殊要求-信息员标签（传中文名）
    private List<String> labels2;
    // 特殊要求-业务员等级id
    private List<String> messengerLevelIds = new ArrayList<>();
    // 派工方式 A=自动派工 B=手动派工
    private String dispatchFlag;
    // 工程师，第一个为大工
    private List<String> websitWorkerIds = new ArrayList<>();
    // 支架
    private String bracket;
    // 加长管
    private String pipe;
    // 空气开关
    private String swithFlag;
    // 高空作业
    private String highAltitude;
    // 一次性成型墙孔
    private String hole;
    // 备注
    private String remark;
    // 预约时间
    private Date appointmentTime;
    // 服务商网点ID-手动派工必填
    private String websitId;
    // 店铺编号
    private String shopNo;
    // 店铺名称
    private String shopName;
    // 商城订单行号
    private String shopOrderNo;
    // 商城下单人电话
    private String shopOrderPhone;
    // 是否新零售
    private String shopNewRetail;
    // 电商标识
    private String shopFlag;
    // 产品信息/故障信息
    private List<OrderProduct> orderProductList = new ArrayList<>();


    // 工程单号-销售类型为工程机必填
    private String enginNo;
    // 工程名字-销售类型为工程机必填
    private String enginName;
    // 工程机垫装类型
    private String enginAdvanceType;
    // 工程机商户网点确认的辅材提供方
    private String enginMaterialSupply1;
    // 工程机的工程师确认的辅材提供方
    private String enginMaterialSupply2;
    // 辅材信息
    private List<OrderMaterial> orderMaterialList = new ArrayList<>();
    // 关联(看位工单,铺管工单)工单号
    private String relaOrderBaseId;
    // 预计到货时间
    private Date expectArrivalTime;
    // 清洗项目
    private List<OrderCleanItem> orderCleanItems = new ArrayList<>();
    // 是否现场收费YES/NO
    private IsEnum isOnsiteCharges;
    // 是否可离线操作，通过相册的图片提交采集 YES/NO
    private IsEnum isOfflineWorker;
    // 工单来源
    private String source;
    // 品牌系统的工单信息编号
    private String pgid;
    // 品牌方的工单主键
    private String pgguid;
    // 来源系统信息方式名称(商城订单标识使用对应格力qqlymc)
    private String externalName2;
    // 首次评价(A:好评,B:中评,C:差评,N:未评价,O:其他")
    private String appraiseStatus;
    // 首次评价内容
    private String appraiseContent;
    // 首次评价时间
    private Date appraiseTime;
    // 追评评价状态(A:好评,B:中评,C:差评,N:未评价,O:其他")
    private String secondAppraiseStatus;
    // 追评评价内容
    private String secondContent;
    // 追评评价时间
    private Date secondAppraiseTime;
    // 格力工单号
    private String greeId;

    // 是否为跨区单
    private IsEnum isSpanned;

    // 安装、维修总数量
    private Integer totalNum;
    // 未完成数量
    private Integer undoneNum;

    // 操作标记：0=临时保存 1=下派服务单，2=下派网点，3=下派师傅，4=智能派工
    private Integer flag;

    // 所属区域
    private String region;
    // 创建网点id
    private String createWebsitId;
    // 创建网点名称
    private String createWebsitName;
    // gree总部虚拟号码
    private String greeVirtualnumber;
    // 默认值 1
    private Integer outsideFlag = 1;

    // 创建人
    private String createBy;
    // 修改人
    private String updateBy;
    // 创建时间
    private Date createTime;
    // 修改时间
    private Date updateTime;
    // 是否已下载总部采集数据 0=未下载 1=已下载
    private Integer outCjDownloadFlag;
    // 源系统信息主键 京东商城用到该值做为销售单号回传使用
    private String externalPk;
}
