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

import com.alibaba.fastjson.JSONObject;
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.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Description: adweb站点配置表单
 * @Author: jeecg-boot
 * @Date: 2024-09-29
 * @Version: V1.0
 */
@Data
@TableName("adweb_site")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description = "adweb站点配置表单")
public class AdwebSite implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 站点主键ID
     */
    @TableId(type = IdType.AUTO)
    @Schema(description = "站点主键ID")
    private java.lang.Integer id;
    /**
     * 用户ID,与用户表关联
     */
    @Excel(name = "用户ID,与用户表关联", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Schema(description = "用户ID,与用户表关联")
    private java.lang.String uid;
    /**
     * 站点code,生成6位长度随机码，取值范围[a-z0-9],保证系统唯一
     */
    @Excel(name = "站点code,生成6位长度随机码，取值范围[a-z0-9],保证系统唯一", width = 15)
    @Schema(description = "站点code,生成6位长度随机码，取值范围[a-z0-9],保证系统唯一")
    private java.lang.String code;
    /**
     * 站点名称
     */
    @Excel(name = "站点名称", width = 15)
    @Schema(description = "站点名称")
    private java.lang.String name;
    /**
     * 站点域名
     */
    @Excel(name = "站点域名", width = 15)
    @Schema(description = "站点域名")
    private java.lang.String domain;
    /**
     * 测试站点域名
     */
    @Excel(name = "测试站点域名", width = 15)
    @Schema(description = "测试站点域名")
    private java.lang.String domainDev;
    /**
     * 是否有域名
     */
    @Excel(name = "是否有域名", width = 15)
    @Schema(description = "是否有域名")
    private java.lang.Integer isDomain;

    /**
     * 模板code
     */
    @Excel(name = "模板code", width = 15)
    @Schema(description = "模板code")
    private java.lang.String parentCode;
    /**
     * 模板域名
     */
    @Excel(name = "模板域名", width = 15)
    @Schema(description = "模板域名")
    private java.lang.String templateDomain;
    /**
     * 站点状态：0：创建失败，1：正常运行，2：运行异常
     * 3:站点停止
     */
    @Excel(name = "站点状态：0：创建失败，1：正常运行，2：运行异常 3:站点停止", width = 15)
    @Schema(description = "站点状态：0：创建失败，1：正常运行，2：运行异常 3:站点停止")
    private java.lang.Integer runStatus;
    /**
     * 当前状态：0：已删除；1：正常；2:未发布  3:拉取测试站点中 ；4：发布正式站点中 ;5:拉取异常
     */
    @Excel(name = "当前状态：0：已删除；1：已发布；2:临时站点已创建  3:临时站点正在创建 ；4：临时站点创建失败 ;5:正式站点正在创建;6:正式站点创建失败", width = 15)
    @Schema(description = "当前状态：0：已删除；1：已发布；2:临时站点已创建  3:临时站点正在创建 ；4：临时站点创建失败 ;5:正式站点正在创建;6:正式站点创建失败")
    @Dict(dicCode = "site_status")
    private java.lang.Integer status;
    /**
     * 创建时间
     */
    @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 java.util.Date ctime;
    /**
     * 修改时间
     */
    @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 java.util.Date utime;
    /**
     * 到期时间，默认为ctime+1年
     */
    @Excel(name = "到期时间，默认为ctime+1年", 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 = "到期时间，默认为ctime+1年")
    private java.util.Date etime;

    /**
     * 站点停止时间
     */
    @Excel(name = "站点停止时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "站点停止时间")
    private Date stopTime;
    /**
     * 站点停止人
     */
    @Excel(name = "站点停止人", width = 15)
    @Schema(description = "站点停止人")
    private java.lang.String stopUid;
    /**
     * 释放时间
     */
    @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 java.util.Date releaseTime;
    /**
     * 释放人
     */
    @Excel(name = "释放人", width = 15)
    @Schema(description = "释放人")
    private java.lang.String releaseUid;
    /**
     * 发布正式环境时间（首次发布）
     */
    @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 java.util.Date issueTime;
    /**
     * 当日询盘条数
     */
    @Excel(name = "当日询盘条数", width = 15)
    @Schema(description = "当日询盘条数")
    private java.lang.Integer dayEnquiryCount;
    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private java.util.Date createTime;
    /**
     * parentGroupCode
     */
    @Excel(name = "parentGroupCode", width = 15)
    @Schema(description = "parentGroupCode")
    private java.lang.String parentGroupCode;
    /**
     * languageCode
     */
    @Excel(name = "languageCode", width = 15)
    @Schema(description = "languageCode")
    private java.lang.String languageCode;


    /**
     * sys系统创建；manual关联
     */
    @Excel(name = "sys系统创建；manual关联", width = 15)
    @Schema(description = "sys系统创建；manual关联")
    private java.lang.String createType;
    /**
     * 建站流程的状态，0未完成，1已完成，2不存在流程
     */
    @Excel(name = "建站流程的状态，查看数据字典 build_website_status", width = 15)
    @Schema(description = "建站流程的状态，查看数据字典 build_website_status")
    private java.lang.Integer siteFlowStatus;
    /**
     * 建站流程当前所在的步骤
     */
    @Excel(name = "建站流程当前所在的步骤", width = 15)
    @Schema(description = "建站流程当前所在的步骤")
    private java.lang.String siteCurrentStep;

    /**
     * 内部模板编号（人工录入）
     */
    @Excel(name = "内部模板编号（人工录入）", width = 15)
    @Schema(description = "内部模板编号（人工录入）")
    private java.lang.String inCode;

    /**
     * 负责人ID
     */
    @Excel(name = "负责人ID", width = 15)
    @Schema(description = "负责人ID")
    private java.lang.String principalId;
    /**
     * 负责人姓名
     */
    @Excel(name = "负责人姓名", width = 15)
    @Schema(description = "负责人姓名")
    private java.lang.String principalName;

    /**
     * 询盘分配方式
     */
    @Excel(name = "询盘分配方式", width = 15)
    @Schema(description = "询盘分配方式")
    private java.lang.String enquiryDistributeType;
    /**
     * 租户名字
     */
    @Excel(name = "渠道商name", width = 15)
    @Schema(description = "渠道商name")
    private java.lang.String channelProviderName;
    /**
     * 租户ID
     */
    @Excel(name = "渠道商id", width = 15)
    @Schema(description = "渠道商id")
    private java.lang.String channelProviderId;
    /**
     * 通过ADWEB发送询盘到指定邮箱
     */
    @Excel(name = "通过ADWEB发送询盘到指定邮箱", width = 15)
    @Schema(description = "通过ADWEB发送询盘到指定邮箱")
    private java.lang.String enquiryEmailList;
    /**
     * 公司名称
     */
    @Excel(name = "公司名称", width = 15)
    @Schema(description = "公司名称")
    private java.lang.String companyName;

    /**
     * WordPress页面内容嵌入配置
     */
    @Excel(name = "WordPress页面内容嵌入配置", width = 15)
    @Schema(description = "WordPress页面内容嵌入配置")
    private java.lang.String wordpressSetting;
    /**
     * WordPress登录账户
     */
    @Excel(name = "WordPress登录账户", width = 15)
    @Schema(description = "WordPress登录账户")
    private java.lang.String wordpressName;
    /**
     * WordPress登录token
     */
    @Excel(name = "WordPress登录token", width = 15)
    @Schema(description = "WordPress登录token")
    private java.lang.String wordpressToken;
    /**
     * 存放服务器的ip
     */
    @Excel(name = "存放服务器的ip", width = 15)
    @Schema(description = "存放服务器的ip")
    private java.lang.String devServerIp;
    /**
     * prod环境的服务器ip
     */
    @Excel(name = "prod环境的服务器ip", width = 15)
    @Schema(description = "prod环境的服务器ip")
    private java.lang.String prodServerIp;
    /**
     * 仅限制用户能不能看到，1为开，0为关
     */
    @Excel(name = "仅限制用户能不能看到，1为开，0为关", width = 15)
    @Schema(description = "仅限制用户能不能看到，1为开，0为关")
    private java.lang.Integer seoJobStatus;
    /**
     * 询盘发送邮箱方式
     */
    @Excel(name = "询盘发送邮箱方式", width = 15)
    @Schema(description = "询盘发送邮箱方式")
    private java.lang.String enquirySendEmailType;

    @TableField(exist = false)
    private Date enquiryMessageTime;

    @TableField(exist = false)
    private String planId;

    @TableField(exist = false)
    private String planName;

    @TableField(exist = false)
    private String planType;

    /**
     * 建站进度
     */
    @TableField(exist = false)
    private Integer completeProcess;
    /**
     * 订阅ID
     */
    @TableField(exist = false)
    private String subscriptionId;

    /**
     * 营销方案
     */
    @TableField(exist = false)
    private JSONObject subscribePlan;

    /**
     * Google GTM Head埋点代码
     */
    @TableField(exist = false)
    private String gtmHead;

    /**
     * Google GTM Body埋点代码
     */
    @TableField(exist = false)
    private String gtmBody;

    /**
     * 订单url
     */
    @TableField(exist = false)
    private String orderUrl;

    /**
     * 订单urlID
     */
    @TableField(exist = false)
    private String orderUrlID;
}
