package po;

import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 工单信息 实体类。
 *
 * @author 单傲
 * @since v1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WrkInfoEntity {

    /**
     * 主键
     */
    protected Long id;

    /**
     * 创建者
     */
    @Column("create_by")
    protected String createBy;

    /**
     * 更新者
     */
    @Column("update_by")
    protected String updateBy;

    /**
     * 创建日期
     */
    @Column("create_time")
    protected LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Column("update_time")
    protected LocalDateTime updateTime;

    /**
     * 租户id
     */
    @Column("tenant_id")
    private Long tenantId;

    /**
     * 商户id
     */
    @Column("store_id")
    private Long storeId;

    /**
     * 终端id
     */
    @Column("terminal_id")
    private Long terminalId;

    /**
     * 总任务id
     */
    @Column("task_id")
    private Long taskId;

    /**
     * 本级id
     */
    @Column("lower_task_id")
    private Long lowerTaskId;

    /**
     * 业务员id
     */
    @Column("user_id")
    private Long userId;

    /**
     * 业务员名字
     */
    @Column("work_name")
    private String workName;

    /**
     * 工单编号
     */
    @Column("work_no")
    private String workNo;

    /**
     * 工单类型
     */
    @Column("work_type")
    private Integer workType;

    /**
     * 巡检方式
     */
    @Column("work_method")
    private Integer workMethod;

    /**
     * 工单优先级
     */
    @Column("work_sort")
    private Integer workSort;

    /**
     * 工单来源
     */
    @Column("work_source")
    private Integer workSource;

    /**
     * 业务员处理时间
     */
    @Column("dispose_time")
    private LocalDateTime disposeTime;

    /**
     * 终端状态
     */
    @Column("terminal_status")
    private Integer terminalStatus;

    /**
     * 服务结果
     */
    @Column("service_result")
    private Integer serviceResult;

    /**
     * 备注
     */
    @Column("remark")
    private String remark;

    /**
     * 状态
     */
    @Column("state")
    private Integer state;

    /**
     * 结束时间
     */
    @Column("end_time")
    private LocalDateTime endTime;

    /**
     * 门店状态
     */
    @Column("store_status")
    private Integer storeStatus;

    /**
     * 商户编号
     */
    private String no;

    /**
     * 商户名称
     */
    private String name;

    /**
     * 商户联系人
     */
    private String contact;

    /**
     * 商户联系电话
     */
    private String phone;

    /**
     * 商户地址
     */
    private String address;

    /**
     * 商户特殊编号
     */
    @Column("special_num")
    private String specialNum;

    /**
     * 门店名称
     */
    @Column("shop_name")
    private String shopName;

    /**
     * 终端sn号
     */
    @Column("terminal_sn")
    private String terminalSn;

    /**
     * 终端类型
     */
    @Column("terminal_type")
    private Integer terminalType;

    /**
     * 终端型号
     */
    @Column("terminal_model")
    private String terminalModel;

    /**
     * 终端编号
     */
    @Column("terminal_no")
    private String terminalNo;

    /**
     * 终端来源
     */
    @Column("terminal_source")
    private Integer terminalSource;

    /**
     * 终端版地址
     */
    @Column("terminal_address")
    private String terminalAddress;

    /**
     * 终端版本号
     */
    @Column("terminal_version")
    private String terminalVersion;

    /**
     * 建档日期
     */
    @Column("register_time")
    private LocalDate registerTime;

    /**
     * 商户类型
     */
    private Integer type;

    /**
     * 现有其他收单产品
     */
    private String products;

    /**
     * 商户提示工具
     */
    @Column("tip_tool")
    private String tipTool;

    /**
     * 操作员编号
     */
    @Column("admin_id")
    private String adminId;

    /**
     * 巡检频次
     */
    @Column("ins_fre")
    private Integer insFre;

    /**
     * 客户经理
     */
    @Column("account_manager")
    private String accountManager;

    /**
     * 经理电话
     */
    @Column("account_phone")
    private String accountPhone;

    /**
     * 注册地址
     */
    @Column("register_address")
    private String registerAddress;

    /**
     * 法人/负责人
     */
    @Column("legal_name")
    private String legalName;

    /**
     * 地理位置信息
     */
    @Column("geographic_location")
    private String geographicLocation;

    /**
     * 地理位置信息地址
     */
    @Column("location_address")
    private String locationAddress;

    /**
     * 本次巡检位置经纬度
     */
    @Column("work_location")
    private String workLocation;

    /**
     * 本次巡检位置信息（根据经纬度）
     */
    @Column("work_adderss")
    private String workAdderss;

    /**
     * 偏差（直线距离 米）
     */
    private Long deviation;

    /**
     * 预制码编码
     */
    @Column("precode_encoding")
    private String precodeEncoding;
}
