package com.flossom.common.core.domain.entity;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 站点管理对象 site_info
 *
 * @author flossom
 * @date 2023-12-20
 */
public class SiteInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 站点管理ID */
    private Long id;
    /** 类型 1-弹窗列表 2-轮播列表 */
    @Excel(name = "类型 1-弹窗列表 2-轮播列表 ")
    private Integer siteType;
    /** 站点名称 */
    @Excel(name = "站点名称")
    private String siteName;

    /** 文件路径 */
    @Excel(name = "文件路径")
    private String fileUrl;

    /** 开启开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "开启开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date siteStartTime;

    private List<String> startTime = new ArrayList<String>();
    /** 开启结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "开启结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date siteEndTime;

    private List<String> registerTime = new ArrayList<String>();

    /** 用户注册开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "用户注册开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date userRegisterStartTime;


    /** 用户注册结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "用户注册结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date userRegisterEndTime;

    /** 1-首页 2-发现模块 3-活动模块 */
    @Excel(name = "1-首页 2-发现模块 3-活动模块")
    private Integer openType;

    /** 推送批次 1-永久一次 2-每次进入 3-自定义频次 */
    @Excel(name = "推送批次 1-永久一次 2-每次进入 3-自定义频次")
    private Integer pushType;

    /** 推送次数(自定义批次) */
    @Excel(name = "推送次数(自定义批次)")
    private Integer pushNumber;

    /** 推送时间 */
    @Excel(name = "推送时间")
    private String pushTimer;

    // 推送时间数组
    private List<Long> pushTimerArray = new ArrayList<Long>();

    /** 可见小程序标签 */
    @Excel(name = "可见小程序标签")
    private String showWechatTag;

    private List<Long> showWechatTagArray = new ArrayList<Long>();

    /** 可见小程序标签ID */
    @Excel(name = "可见小程序标签ID")
    private String showWechatTagId;

    /** 可见外部标签 */
    @Excel(name = "可见外部标签")
    private String showCompanyTag;
    private List<Long> showCompanyTagArray = new ArrayList<Long>();
    /** 可见外部标签ID */
    @Excel(name = "可见外部标签ID")
    private String showCompanyTagId;

    /** 禁止小程序标签 */
    @Excel(name = "禁止小程序标签")
    private String forbidWechatTag;
    private List<Long> forbidWechatTagArray = new ArrayList<Long>();
    /** 禁止小程序标签ID */
    @Excel(name = "禁止小程序标签ID")
    private String forbidWechatTagId;

    /** 禁止外部标签 */
    @Excel(name = "禁止外部标签")
    private String forbidCompanyTag;
    private List<Long> forbidCompanyTagArray = new ArrayList<Long>();

    /** 禁止外部标签ID */
    @Excel(name = "禁止外部标签ID")
    private String forbidCompanyTagId;

    /** 渠道名称 */
    @Excel(name = "渠道名称")
    private String channelName;
    private List<Long> channelArray = new ArrayList<Long>();

    /** 渠道ID */
    @Excel(name = "渠道ID")
    private String channelId;

    /** 仪器名称 */
    @Excel(name = "仪器名称")
    private String instrumentName;

    /** 仪器ID */
    @Excel(name = "仪器ID")
    private String instrumentId;
    private List<Long> machineArray = new ArrayList<Long>();

    private String handlerCompanyTagId;

    private List<Long> handlerCompanyTagArray = new ArrayList<Long>();
    /** 获取外部标签 */
    @Excel(name = "获取外部标签")
    private String handlerCompanyTag;

    @Excel(name = "获取小程序标签")
    private String handlerWechatTag;

    /** 获取小程序标签ID */
    private String handlerWechatTagId;

    private List<Long> handlerWechatTagArray = new ArrayList<Long>();

    /** 用户类型 0-全部 1-游客 2-会员 */
    @Excel(name = "用户类型 0-全部 1-游客 2-会员")
    private Integer userType;

    /** 1-开启 2-关闭 弹窗 */
    @Excel(name = "1-开启 2-关闭 弹窗")
    private Integer operate;

    /** 打卡多少次显示活动  */
    @Excel(name = "打卡多少次显示活动 ")
    private Long signNumber;

    /** 排序 */
    @Excel(name = "排序")
    private Long orderNumber;

    /** 跳转类型：0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 */
    @Excel(name = "跳转类型：0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间")
    private Integer type;

    /** 跳转链接（跳转外部链接、跳转内部链接） */
    @Excel(name = "跳转链接", readConverterExp = "跳=转外部链接、跳转内部链接")
    private String link;

    /** 跳转链接参数（跳转内部链接） */
    @Excel(name = "跳转链接参数", readConverterExp = "跳=转内部链接")
    private String linkParams;

    /** 外链小程序appid（跳转小程序） */
    @Excel(name = "外链小程序appid", readConverterExp = "跳=转小程序")
    private String redirectAppid;

    /** 外链小程序url（跳转小程序） */
    @Excel(name = "外链小程序url", readConverterExp = "跳=转小程序")
    private String redirectUrl;

    /** 视频号（导向视频号、导向视频号直播间） */
    @Excel(name = "视频号", readConverterExp = "导=向视频号、导向视频号直播间")
    private String videoNo;

    /** 视频号feedId（导向视频号） */
    @Excel(name = "视频号feedId", readConverterExp = "导=向视频号")
    private String feedId;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }

    public void setSiteStartTime(Date siteStartTime)
    {
        this.siteStartTime = siteStartTime;
    }

    public Date getSiteStartTime()
    {
        return siteStartTime;
    }
    public void setSiteEndTime(Date siteEndTime)
    {
        this.siteEndTime = siteEndTime;
    }

    public Date getSiteEndTime()
    {
        return siteEndTime;
    }
    public void setUserRegisterStartTime(Date userRegisterStartTime)
    {
        this.userRegisterStartTime = userRegisterStartTime;
    }

    public Date getUserRegisterStartTime()
    {
        return userRegisterStartTime;
    }
    public void setUserRegisterEndTime(Date userRegisterEndTime)
    {
        this.userRegisterEndTime = userRegisterEndTime;
    }

    public Date getUserRegisterEndTime()
    {
        return userRegisterEndTime;
    }
    public void setOpenType(Integer openType)
    {
        this.openType = openType;
    }

    public Integer getOpenType()
    {
        return openType;
    }
    public void setPushType(Integer pushType)
    {
        this.pushType = pushType;
    }

    public Integer getPushType()
    {
        return pushType;
    }
    public void setPushNumber(Integer pushNumber)
    {
        this.pushNumber = pushNumber;
    }

    public Integer getPushNumber()
    {
        return pushNumber;
    }
    public void setPushTimer(String pushTimer)
    {
        this.pushTimer = pushTimer;
    }

    public String getPushTimer()
    {
        return pushTimer;
    }
    public void setShowWechatTag(String showWechatTag)
    {
        this.showWechatTag = showWechatTag;
    }

    public String getShowWechatTag()
    {
        return showWechatTag;
    }
    public void setShowWechatTagId(String showWechatTagId)
    {
        this.showWechatTagId = showWechatTagId;
    }

    public String getShowWechatTagId()
    {
        return showWechatTagId;
    }
    public void setShowCompanyTag(String showCompanyTag)
    {
        this.showCompanyTag = showCompanyTag;
    }

    public String getShowCompanyTag()
    {
        return showCompanyTag;
    }
    public void setShowCompanyTagId(String showCompanyTagId)
    {
        this.showCompanyTagId = showCompanyTagId;
    }

    public String getShowCompanyTagId()
    {
        return showCompanyTagId;
    }
    public void setForbidWechatTag(String forbidWechatTag)
    {
        this.forbidWechatTag = forbidWechatTag;
    }

    public String getForbidWechatTag()
    {
        return forbidWechatTag;
    }
    public void setForbidWechatTagId(String forbidWechatTagId)
    {
        this.forbidWechatTagId = forbidWechatTagId;
    }

    public String getForbidWechatTagId()
    {
        return forbidWechatTagId;
    }
    public void setForbidCompanyTag(String forbidCompanyTag)
    {
        this.forbidCompanyTag = forbidCompanyTag;
    }

    public String getForbidCompanyTag()
    {
        return forbidCompanyTag;
    }
    public void setForbidCompanyTagId(String forbidCompanyTagId)
    {
        this.forbidCompanyTagId = forbidCompanyTagId;
    }

    public String getForbidCompanyTagId()
    {
        return forbidCompanyTagId;
    }
    public void setChannelName(String channelName)
    {
        this.channelName = channelName;
    }

    public String getChannelName()
    {
        return channelName;
    }
    public void setChannelId(String channelId)
    {
        this.channelId = channelId;
    }

    public String getChannelId()
    {
        return channelId;
    }

    public String getInstrumentName() {
        return instrumentName;
    }

    public void setInstrumentName(String instrumentName) {
        this.instrumentName = instrumentName;
    }

    public String getInstrumentId() {
        return instrumentId;
    }

    public void setInstrumentId(String instrumentId) {
        this.instrumentId = instrumentId;
    }

    //    public void setMachineName(String machineName)
//    {
//        this.machineName = machineName;
//    }
//
//    public String getMachineName()
//    {
//        return machineName;
//    }
//    public void setMachineId(String machineId)
//    {
//        this.machineId = machineId;
//    }
//
//    public String getMachineId()
//    {
//        return machineId;
//    }
    public void setUserType(Integer userType)
    {
        this.userType = userType;
    }

    public Integer getUserType()
    {
        return userType;
    }
    public void setOperate(Integer operate)
    {
        this.operate = operate;
    }

    public Integer getOperate()
    {
        return operate;
    }
    public void setSignNumber(Long signNumber)
    {
        this.signNumber = signNumber;
    }

    public Long getSignNumber()
    {
        return signNumber;
    }
    public void setOrderNumber(Long orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public Long getOrderNumber()
    {
        return orderNumber;
    }
    public void setType(Integer type)
    {
        this.type = type;
    }

    public Integer getType()
    {
        return type;
    }
    public void setLink(String link)
    {
        this.link = link;
    }

    public String getLink()
    {
        return link;
    }
    public void setLinkParams(String linkParams)
    {
        this.linkParams = linkParams;
    }

    public String getLinkParams()
    {
        return linkParams;
    }
    public void setRedirectAppid(String redirectAppid)
    {
        this.redirectAppid = redirectAppid;
    }

    public String getRedirectAppid()
    {
        return redirectAppid;
    }
    public void setRedirectUrl(String redirectUrl)
    {
        this.redirectUrl = redirectUrl;
    }

    public String getRedirectUrl()
    {
        return redirectUrl;
    }
    public void setVideoNo(String videoNo)
    {
        this.videoNo = videoNo;
    }

    public String getVideoNo()
    {
        return videoNo;
    }
    public void setFeedId(String feedId)
    {
        this.feedId = feedId;
    }

    public String getFeedId()
    {
        return feedId;
    }

    public List<Long> getPushTimerArray() {
        return pushTimerArray;
    }

    public void setPushTimerArray(List<Long> pushTimerArray) {
        this.pushTimerArray = pushTimerArray;
    }

    public List<Long> getShowWechatTagArray() {
        return showWechatTagArray;
    }

    public void setShowWechatTagArray(List<Long> showWechatTagArray) {
        this.showWechatTagArray = showWechatTagArray;
    }

    public List<Long> getShowCompanyTagArray() {
        return showCompanyTagArray;
    }

    public void setShowCompanyTagArray(List<Long> showCompanyTagArray) {
        this.showCompanyTagArray = showCompanyTagArray;
    }

    public List<Long> getForbidWechatTagArray() {
        return forbidWechatTagArray;
    }

    public void setForbidWechatTagArray(List<Long> forbidWechatTagArray) {
        this.forbidWechatTagArray = forbidWechatTagArray;
    }

    public List<Long> getForbidCompanyTagArray() {
        return forbidCompanyTagArray;
    }

    public void setForbidCompanyTagArray(List<Long> forbidCompanyTagArray) {
        this.forbidCompanyTagArray = forbidCompanyTagArray;
    }

    public List<String> getStartTime() {
        return startTime;
    }

    public void setStartTime(List<String> startTime) {
        this.startTime = startTime;
    }

    public List<String> getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(List<String> registerTime) {
        this.registerTime = registerTime;
    }

    public List<Long> getChannelArray() {
        return channelArray;
    }

    public void setChannelArray(List<Long> channelArray) {
        this.channelArray = channelArray;
    }

    public List<Long> getMachineArray() {
        return machineArray;
    }

    public void setMachineArray(List<Long> machineArray) {
        this.machineArray = machineArray;
    }

    public Integer getSiteType() {
        return siteType;
    }

    public void setSiteType(Integer siteType) {
        this.siteType = siteType;
    }

    public String getHandlerCompanyTagId() {
        return handlerCompanyTagId;
    }

    public void setHandlerCompanyTagId(String handlerCompanyTagId) {
        this.handlerCompanyTagId = handlerCompanyTagId;
    }

    public List<Long> getHandlerCompanyTagArray() {
        return handlerCompanyTagArray;
    }

    public void setHandlerCompanyTagArray(List<Long> handlerCompanyTagArray) {
        this.handlerCompanyTagArray = handlerCompanyTagArray;
    }

    public String getHandlerWechatTagId() {
        return handlerWechatTagId;
    }

    public void setHandlerWechatTagId(String handlerWechatTagId) {
        this.handlerWechatTagId = handlerWechatTagId;
    }

    public List<Long> getHandlerWechatTagArray() {
        return handlerWechatTagArray;
    }

    public void setHandlerWechatTagArray(List<Long> handlerWechatTagArray) {
        this.handlerWechatTagArray = handlerWechatTagArray;
    }

    public String getHandlerCompanyTag() {
        return handlerCompanyTag;
    }

    public void setHandlerCompanyTag(String handlerCompanyTag) {
        this.handlerCompanyTag = handlerCompanyTag;
    }

    public String getHandlerWechatTag() {
        return handlerWechatTag;
    }

    public void setHandlerWechatTag(String handlerWechatTag) {
        this.handlerWechatTag = handlerWechatTag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("siteName", getSiteName())
            .append("siteStartTime", getSiteStartTime())
            .append("siteEndTime", getSiteEndTime())
            .append("userRegisterStartTime", getUserRegisterStartTime())
            .append("userRegisterEndTime", getUserRegisterEndTime())
            .append("openType", getOpenType())
            .append("pushType", getPushType())
            .append("pushNumber", getPushNumber())
            .append("pushTimer", getPushTimer())
            .append("showWechatTag", getShowWechatTag())
            .append("showWechatTagId", getShowWechatTagId())
            .append("showCompanyTag", getShowCompanyTag())
            .append("showCompanyTagId", getShowCompanyTagId())
            .append("forbidWechatTag", getForbidWechatTag())
            .append("forbidWechatTagId", getForbidWechatTagId())
            .append("forbidCompanyTag", getForbidCompanyTag())
            .append("forbidCompanyTagId", getForbidCompanyTagId())
            .append("channelName", getChannelName())
            .append("channelId", getChannelId())
//            .append("machineName", getMachineName())
//            .append("machineId", getMachineId())
            .append("userType", getUserType())
            .append("operate", getOperate())
            .append("signNumber", getSignNumber())
            .append("orderNumber", getOrderNumber())
            .append("type", getType())
            .append("link", getLink())
            .append("linkParams", getLinkParams())
            .append("redirectAppid", getRedirectAppid())
            .append("redirectUrl", getRedirectUrl())
            .append("videoNo", getVideoNo())
            .append("feedId", getFeedId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
