package com.gxwebsoft.cms.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.Link;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 网站信息记录表
 *
 * @author 科技小王子
 * @since 2024-03-04 21:14:15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Website对象", description = "网站信息记录表")
@TableName("cms_website")
public class Website implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "站点ID")
    @TableId(value = "website_id", type = IdType.AUTO)
    private Integer websiteId;

    @ApiModelProperty(value = "网站名称")
    private String websiteName;

    @ApiModelProperty(value = "网站标识")
    private String websiteCode;

    @ApiModelProperty(value = "网站Icon")
    private String websiteIcon;

    @ApiModelProperty(value = "网站Logo")
    private String websiteLogo;

    @ApiModelProperty(value = "网站Logo(深色模式)")
    private String websiteDarkLogo;

    @ApiModelProperty(value = "网站类型")
    private String websiteType;

    @ApiModelProperty(value = "全局样式")
    private String styles;

    @ApiModelProperty(value = "域名前缀")
    private String prefix;

    @ApiModelProperty(value = "绑定域名")
    private String domain;

    @ApiModelProperty(value = "全局样式")
    private String style;

    @ApiModelProperty(value = "后台管理地址")
    private String adminUrl;

    @ApiModelProperty(value = "网站关键词")
    private String keywords;

    @ApiModelProperty(value = "当前版本")
    private Integer version;

    @ApiModelProperty(value = "服务到期时间")
    private Date expirationTime;

    @ApiModelProperty(value = "模版ID")
    private Integer templateId;

    @ApiModelProperty(value = "行业类型(父级)")
    private String industryParent;

    @ApiModelProperty(value = "行业类型(子级)")
    private String industryChild;

    @ApiModelProperty(value = "企业ID")
    private Integer companyId;

    @ApiModelProperty(value = "所在国家")
    private String country;

    @ApiModelProperty(value = "所在省份")
    private String province;

    @ApiModelProperty(value = "所在城市")
    private String city;

    @ApiModelProperty(value = "所在辖区")
    private String region;

    @ApiModelProperty(value = "办公地址")
    private String address;

    @ApiModelProperty(value = "办公电话")
    private String phone;

    @ApiModelProperty(value = "办公电话")
    private String email;

    @ApiModelProperty(value = "经度")
    private String longitude;

    @ApiModelProperty(value = "纬度")
    private String latitude;

    @ApiModelProperty(value = "备注")
    private String comments;

    @ApiModelProperty(value = "ICP备案")
    private String icpNo;

    @ApiModelProperty(value = "公安备案")
    private String policeNo;

    @ApiModelProperty(value = "是否推荐")
    private Integer recommend;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "状态名称")
    @TableField(exist = false)
    private String statusName;

    @ApiModelProperty(value = "状态说明")
    private String statusText;

    @ApiModelProperty(value = "关闭原因")
    private String statusClose;

    @ApiModelProperty(value = "跳转地址")
    @TableField(exist = false)
    private String statusUrl;

    @ApiModelProperty(value = "跳转按钮文字")
    @TableField(exist = false)
    private String statusBtnText;

    @ApiModelProperty(value = "状态图标")
    @TableField(exist = false)
    private String statusIcon;

    @ApiModelProperty(value = "排序号")
    private Integer sortNumber;

    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    @ApiModelProperty(value = "商户ID")
    private Integer merchantId;

    @ApiModelProperty(value = "是否删除, 0否, 1是")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "租户id")
    private Integer tenantId;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "预设字段")
    @TableField(exist = false)
    private List<WebsiteField> fields;

    @ApiModelProperty(value = "小程序导航图标")
    @TableField(exist = false)
    private Map<String, List<MpMenu>> mpMenus;

    @ApiModelProperty(value = "网站导航栏")
    @TableField(exist = false)
    private List<Navigation> navigations;

    @ApiModelProperty(value = "顶部菜单")
    @TableField(exist = false)
    private List<Navigation> topNavs;

    @ApiModelProperty(value = "底部菜单")
    @TableField(exist = false)
    private List<Navigation> bottomNavs;


    @ApiModelProperty(value = "幻灯片广告")
    @TableField(exist = false)
    private Ad slide;

    @ApiModelProperty(value = "站点广告")
    @TableField(exist = false)
    private List<Ad> ads;

    @ApiModelProperty(value = "首页布局")
    @TableField(exist = false)
    private String layout;

//    @ApiModelProperty(value = "文章分类")
//    @TableField(exist = false)
//    private List<ArticleCategory> categoryList;

    @ApiModelProperty(value = "友情链接")
    @TableField(exist = false)
    private List<Link> links;

//    @ApiModelProperty(value = "用户信息")
//    @TableField(exist = false)
//    private User userInfo;

//    @ApiModelProperty(value = "商户信息")
//    @TableField(exist = false)
//    private Merchant merchant;
//
//    @ApiModelProperty(value = "商户账号")
//    @TableField(exist = false)
//    private MerchantAccount merchantAccount;

    @ApiModelProperty(value = "配置信息")
    @TableField(exist = false)
    private Object config;

    @ApiModelProperty(value = "当前登录用户")
    @TableField(exist = false)
    private User loginUser;

    @ApiModelProperty(value = "服务器时间")
    @TableField(exist = false)
    private HashMap<String, Object> serverTime;

}
