package org.jeecg.modules.adweb.enquiry.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 询盘信息存储表单
 * @Author: jeecg-boot
 * @Date: 2024-10-12
 * @Version: V1.0
 */
@Data
@TableName("adweb_enquiry")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description = "询盘信息存储表单")
public class AdwebEnquiry implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;
    /**
     * 询盘单号、根据系统规定生成
     */
    @Excel(name = "询盘单号、根据系统规定生成", width = 15)
    @Schema(description = "询盘单号、根据系统规定生成")
    private String no;
    /**
     * 询盘来源IP
     */
    @Excel(name = "询盘来源IP", width = 15)
    @Schema(description = "询盘来源IP")
    private String fromIp;
    /**
     * 询盘发送者邮箱账号
     */
    @Excel(name = "询盘发送者邮箱账号", width = 15)
    @Schema(description = "询盘发送者邮箱账号")
    private String fromEmail;
    /**
     * 询盘模块：web：网站询盘 ；email：邮件询盘  ；diy_element：自定义组件询盘
     */
    @Excel(name = "询盘模块：web：网站询盘 ；email：邮件询盘  ；diy_element：自定义组件询盘", width = 15)
    @Schema(description = "询盘模块：web：网站询盘 ；email：邮件询盘  ；diy_element：自定义组件询盘")
    private String modular;
    /**
     * 发送人姓名
     */
    @Excel(name = "发送人姓名", width = 15)
    @Schema(description = "发送人姓名")
    private String fromUser;
    /**
     * 0删除，1有效，默认值1   2：待解析  3:数据解析中 4.解析失败
     */
    @Excel(name = "0删除，1有效，默认值1   2：待解析  3:数据解析中 4.解析失败", width = 15)
    @Schema(description = "0删除，1有效，默认值1   2：待解析  3:数据解析中 4.解析失败")
    private Integer status;
    /**
     * 数据解析次数
     */
    @Excel(name = "数据解析次数", width = 15)
    @Schema(description = "数据解析次数")
    private Integer dealCount;
    /**
     * 系统有效性  0：无效       1；有效 后台字段
     */
    @Excel(name = "系统有效性  0：无效       1；有效 后台字段", width = 15)
    @Schema(description = "系统有效性  0：无效       1；有效 后台字段")
    private Integer sysEffective;
    /**
     * 用户有效性  0：无效       1：有效   2 : 待定 取自字典表
     */
    @Excel(name = "用户有效性  0：无效       1：有效   2 : 待定 取自字典表", width = 15)
    @Schema(description = "用户有效性  0：无效       1：有效   2 : 待定 取自字典表")
    private Integer userEffective;
    /**
     * 敏感信息
     */
    @Excel(name = "敏感信息", width = 15)
    @Schema(description = "敏感信息")
    private String sensitiveMessage;
    /**
     * 询盘阶段,由跟踪来决定（1：待沟通 ；2：沟通中；3：成单；4;放弃）
     */
    @Excel(name = "询盘阶段,由跟踪来决定（1：待沟通 ；2：沟通中；3：成单；4;放弃）", width = 15)
    @Schema(description = "询盘阶段,由跟踪来决定（1：待沟通 ；2：沟通中；3：成单；4;放弃）")
    private String phase;
    /**
     * 跟进跟进状态,由跟踪来决定（1：待跟进 ；2：跟进中；3：完成；4;停止）
     */
    @Excel(name = "跟进跟进状态,由跟踪来决定（1：待跟进 ；2：跟进中；3：完成；4;停止）", width = 15)
    @Schema(description = "跟进跟进状态,由跟踪来决定（1：待跟进 ；2：跟进中；3：完成；4;停止）")
    private String trackStatus;
    /**
     * 询盘所属用户主账号ID
     */
    @Excel(name = "询盘所属用户主账号ID", width = 15)
    @Schema(description = "询盘所属用户主账号ID")
    private String uid;
    /**
     * 询盘跟进人 id
     */
    @Excel(name = "询盘跟进人 id", width = 15)
    @Schema(description = "询盘跟进人 id")
    private Integer tracker;
    /**
     * 询盘创建时间
     */
    @Excel(name = "询盘创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "询盘创建时间")
    private Date recordCtime;
    /**
     * ADMP平台创建时间
     */
    @Excel(name = "ADMP平台创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "ADMP平台创建时间")
    private Date ctime;
    /**
     * 国家/地区（根据ip获取）
     */
    @Excel(name = "国家/地区（根据ip获取）", width = 15)
    @Schema(description = "国家/地区（根据ip获取）")
    private String country;
    
    /**
     * 询盘插件名称，名称小写，如：wpforms
     */
    @Excel(name = "询盘插件名称，名称小写，如：wpforms", width = 15)
    @Schema(description = "询盘插件名称，名称小写，如：wpforms")
    private String pluginName;
    /**
     * 站点code，关联站点表
     */
    @Excel(name = "站点code，关联站点表", width = 15)
    @Schema(description = "站点code，关联站点表")
    private String siteCode;
    /**
     * 站点token
     */
    @Excel(name = "站点token", width = 15)
    @Schema(description = "站点token")
    private String siteToken;
    /**
     * 询盘来自站点的域名
     */
    @Excel(name = "询盘来自站点的域名", width = 15)
    @Schema(description = "询盘来自站点的域名")
    private String siteHost;
    /**
     * 询盘原站点记录ID
     */
    @Excel(name = "询盘原站点记录ID", width = 15)
    @Schema(description = "询盘原站点记录ID")
    private String recordId;
    /**
     * 状态更新时间
     */
    @Excel(name = "状态更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "状态更新时间")
    private Date utime;
    /**
     * 回复时间
     */
    @Excel(name = "回复时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "回复时间")
    private Date replyTime;
    /**
     * 转发状态：0未转发，1已转发，默认值0
     */
    @Excel(name = "转发状态：0未转发，1已转发，默认值0", width = 15)
    @Schema(description = "转发状态：0未转发，1已转发，默认值0")
    private Integer forward;
    /**
     * 转发时间
     */
    @Excel(name = "转发时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "转发时间")
    private Date forwardTime;
    /**
     * 访客id
     */
    @Excel(name = "访客id", width = 15)
    @Schema(description = "访客id")
    private String visitId;
    /**
     * 来源于站点的id
     */
    @Excel(name = "来源于站点的id", width = 15)
    @Schema(description = "来源于站点的id")
    private Integer siteId;
    /**
     * 公司id
     */
    @Excel(name = "公司id", width = 15)
    @Schema(description = "公司id")
    private Integer companyId;
    /**
     * 联系人id，字符串组合
     */
    @Excel(name = "联系人id，字符串组合", width = 15)
    @Schema(description = "联系人id，字符串组合")
    private String contactIds;
    /**
     * 定时器任务修改查询唯一标识（10位随机数）
     */
    @Excel(name = "定时器任务修改查询唯一标识（10位随机数）", width = 15)
    @Schema(description = "定时器任务修改查询唯一标识（10位随机数）")
    private String jobId;
    /**
     * 回复状态
     */
    @Excel(name = "回复状态", width = 15)
    @Schema(description = "回复状态")
    private String replayStatus;
    /**
     * 外部编号
     */
    @Excel(name = "外部编号", width = 15)
    @Schema(description = "外部编号")
    private String noOut;
    /**
     * 处理后的询盘当地时间字段
     */
    @Excel(name = "处理后的询盘当地时间字段", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "处理后的询盘当地时间字段")
    private Date modifyRecordCtime;
    /**
     * transContent
     */
    @Excel(name = "transContent", width = 15)
    @Schema(description = "transContent")
    private String transContent;
    /**
     * 国家code
     */
    @Excel(name = "国家code", width = 15)
    @Schema(description = "国家code")
    private String countryCode;
    /**
     * 国家名
     */
    @Excel(name = "国家名", width = 15)
    @Schema(description = "国家名")
    private String countryName;
    /**
     * whatsApp
     */
    @Excel(name = "whatsApp", width = 15)
    @Schema(description = "whatsApp")
    private String whatsApp;
    /**
     * 0：不是；1：是
     */
    @Excel(name = "0：不是；1：是", width = 15)
    @Schema(description = "0：不是；1：是")
    private Integer wasteEnquiry;
    /**
     * 推送状态，0：待发送，1：成功，2不予发送
     */
    @Excel(name = "推送状态，0：待发送，1：成功，2不予发送", width = 15)
    @Schema(description = "推送状态，0：待发送，1：成功，2不予发送")
    private Integer pushStatus;
    /**
     * 推送错误次数
     */
    @Excel(name = "推送错误次数", width = 15)
    @Schema(description = "推送错误次数")
    private Integer pushErrorNum;
    /**
     * 姓名
     */
    @Excel(name = "姓名", width = 15)
    @Schema(description = "姓名")
    private String name;
    /**
     * 邮箱地址
     */
    @Excel(name = "邮箱地址", width = 15)
    @Schema(description = "邮箱地址")
    private String email;
    /**
     * 询盘信息
     */
    @Excel(name = "询盘信息", width = 15)
    @Schema(description = "询盘信息")
    private String message;
    /**
     * 公司名称
     */
    @Excel(name = "公司名称", width = 15)
    @Schema(description = "公司名称")
    private String company;
    /**
     * 来源页面
     */
    @Excel(name = "来源页面", width = 15)
    @Schema(description = "来源页面")
    private String fromPage;
    /**
     * form表单传入Ip
     */
    @Excel(name = "form表单传入Ip", width = 15)
    @Schema(description = "form表单传入Ip")
    private String customerIp;
    /**
     * 手机号
     */
    @Excel(name = "手机号", width = 15)
    @Schema(description = "手机号")
    private String phone;
    /**
     * whatsapp
     */

    private String whatsapp;
    /**
     * 阅读状态，0是未阅读，1是已阅读
     */
    @Excel(name = "阅读状态，0是未阅读，1是已阅读", width = 15)
    @Schema(description = "阅读状态，0是未阅读，1是已阅读")
    private Integer readStatus;
    /**
     * 负责人的id
     */
    @Excel(name = "负责人的id", width = 15)
    @Schema(description = "负责人的id")
    private String principalUid;
    /**
     * 0代表系统根据规则分配，1代表主账户指定
     */
    @Excel(name = "0代表系统根据规则分配，1代表主账户指定", width = 15)
    @Schema(description = "0代表系统根据规则分配，1代表主账户指定")
    private Integer principalType;
    /**
     * form表单中的地址
     */
    @Excel(name = "form表单中的地址", width = 15)
    @Schema(description = "form表单中的地址")
    private String address;
    /**
     * 客户自定义字段
     */
    @Excel(name = "客户自定义字段", width = 15)
    @Schema(description = "客户自定义字段")
    private String specialField;
    /**
     * 向Wp发送请求时间
     */
    @Excel(name = "向Wp发送请求时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "向Wp发送请求时间")
    private Date requestTime;
    /**
     * Adweb实时获取WebHookS消息时间，定时器无该值
     */
    @Excel(name = "Adweb实时获取WebHookS消息时间，定时器无该值", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "Adweb实时获取WebHookS消息时间，定时器无该值")
    private Date acquireMessageTime;
    /**
     * 疑似垃圾询盘理由
     */
    @Excel(name = "疑似垃圾询盘理由", width = 15)
    @Schema(description = "疑似垃圾询盘理由")
    private String effectiveReason;
    /**
     * 垃圾询盘类型，关键词：keyword，邮箱：email，ip: ip，其他：other
     */
    @Excel(name = "垃圾询盘类型，关键词：keyword，邮箱：email，ip: ip，其他：other", width = 15)
    @Schema(description = "垃圾询盘类型，关键词：keyword，邮箱：email，ip: ip，其他：other")
    private String wasteEnquiryType;
    /**
     * 询盘关联产品
     */
    @Excel(name = "询盘关联产品", width = 15)
    @Schema(description = "询盘关联产品")
    private String cartItems;

    /**
     * 用于判断是否是·产品询盘·
     */
    @TableField(exist = false)
    private Integer existProductEnquiry;

    /**
     * 用于判断是否是同步询盘进行发送询盘邮件
     */
    @TableField(exist = false)
    private String isEnquirySync;

    /**
     * 用于判断是否是·联系我们询盘·
     */
    @TableField(exist = false)
    private Integer existContactEnquiry;
}
