package com.microservices.zone.detail.domain;

import com.microservices.common.core.utils.bean.BeanUtils;
import com.microservices.common.core.web.domain.BaseEntity;
import com.microservices.zone.detail.domain.vo.ZoneBaseDataVo;
import com.microservices.zone.detail.domain.vo.ZoneDetailDataVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 特色专区详情对象 zone_detail
 *
 * @author otto
 * @date 2023-05-09
 */
@Data
public class ZoneDetail extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 特色专区主键 */
    private Long id;

    /** 特色专区名称 */
    @ApiModelProperty(value = "特色专区名称")
    private String name;

    /** 特色专区标识 */
    @ApiModelProperty(value = "特色专区标识")
    private String key;

    /** 所属组织Id */
    @ApiModelProperty(value = "所属组织Id")
    private Long deptId;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 主标题
     */
    @ApiModelProperty(value = "主标题")
    private String mainTitle;

    /**
     * 副标题
     */
    @ApiModelProperty(value = "副标题")
    private String subTitle;

    /**
     * 首页一级标题
     */
    @ApiModelProperty(value = "首页一级标题")
    private String firstTitle;

    /**
     * banner列表
     */
    @ApiModelProperty(value = "banner列表")
    private String bannerList;

    /**
     * 简介标题
     */
    @ApiModelProperty(value = "简介标题")
    private String introductionTitle;

    /**
     * 简介内容
     */
    @ApiModelProperty(value = "简介内容")
    private String introductionContent;

    /** 简介配图 */
    @ApiModelProperty(value = "简介配图")
    private String introductionImage;

    /**
     * 首页会员展示个数
     */
    @ApiModelProperty(value = "首页会员展示个数")
    private Long homepageMembershipSize;

    /**
     * 首页项目展示个数
     */
    @ApiModelProperty(value = "首页项目展示个数")
    private Long homepageProjectSize;

    /**
     * 首页新闻展示个数
     */
    @ApiModelProperty(value = "首页新闻展示个数")
    private Long homepageCmsSize;

    /**
     * 新闻项目Id
     */
    @ApiModelProperty(value = "新闻项目Id")
    private Long cmsProjectId;

    /**
     * 需展示的项目Key列表
     */
    @ApiModelProperty(value = "需展示的项目Key列表")
    private String gitlinkProjectKeys;

    /**
     * 帮助中心板块标题
     */
    @ApiModelProperty(value = "帮助中心板块标题")
    private String helperTitle;

    /**
     * 帮助中心板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "帮助中心板块是否展示（0:不展示，1：展示） ")
    private Integer helperShow;

    /**
     * 专区是否发布（0:未发布，1：已发布）
     */
    private Integer isPublish;

    /**
     * 资讯板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "首页资讯板块是否展示（0:不展示，1：展示）")
    private Integer cmsShow;

    /**
     * 项目板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "首页项目板块是否展示（0:不展示，1：展示）")
    private Integer projectShow;

    /**
     * 会员板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "首页会员板块是否展示（0:不展示，1：展示）")
    private Integer memberShow;

    /** 合作伙伴板块是否展示（0:不展示，1：展示） */
    @ApiModelProperty(value = "首页合作伙伴板块是否展示（0:不展示，1：展示）")
    private Integer partnersShow;

    @ApiModelProperty(value = "专项项目板块是否展示（0:不展示，1：展示）")
    private Integer specialProjectShow;

    @ApiModelProperty(value = "首页专项项目标题")
    private String homepageSpecialProjectTitle;

    @ApiModelProperty(value = "资源板块是否展示（0:不展示，1：展示）")
    private Integer resourceShow;

    @ApiModelProperty(value = "首页资源标题")
    private String homepageResourceTitle;

    /** 首页资讯标题 */
    @ApiModelProperty(value = "首页资讯标题")
    private String homepageCmsTitle;

    /** 首页项目标题 */
    @ApiModelProperty(value = "首页项目标题")
    private String homepageProjectTitle;

    /** 首页会员标题 */
    @ApiModelProperty(value = "首页会员标题")
    private String homepageMemberTitle;

    /** 首页合作伙伴标题 */
    @ApiModelProperty(value = "首页合作伙伴标题")
    private String homepagePartnersTitle;

    /**
     * 专区模板
     */
    @ApiModelProperty(value = "专区模板")
    private String template;

    /** 是否需要审核（0：不需要，1：需要） */
    @ApiModelProperty(value = "是否需要审核（0:不需要审核，1：需要审核）")
    private Integer docNeedAudit;

    /**
     * 是否需要审核（0：不需要，1：需要）
     */
    @ApiModelProperty(value = "资源是否需要审核（0:不需要审核，1：需要审核）")
    private Integer resourceNeedAudit;


    /**
     * 资讯是否锁定中（0：未锁定，1：锁定）
     */
    @ApiModelProperty(value = "资讯是否锁定中（0：未锁定，1：锁定）")
    private Integer isLockCms;

    /**
     * 资讯板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "资讯板块是否展示（0:不展示，1：展示）")
    private Integer sectionCmsShow;

    /**
     * 项目板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "项目板块是否展示（0:不展示，1：展示）")
    private Integer sectionProjectShow;

    /**
     * 会员板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "会员板块是否展示（0:不展示，1：展示）")
    private Integer sectionMemberShow;

    /**
     * 帮助中心板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "帮助中心板块是否展示（0:不展示，1：展示）")
    private Integer sectionHelperShow;

    /**
     * 首页板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "首页板块是否展示（0:不展示，1：展示）")
    private Integer sectionHomepageShow;

    /**
     * 资源板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "资源板块是否展示（0:不展示，1：展示）")
    private Integer sectionResourceShow;

    /**
     * 数据集板块是否展示（0:不展示，1：展示）
     */
    @ApiModelProperty(value = "数据集板块是否展示（0:不展示，1：展示）")
    private Integer sectionDataSetShow;

    /**
     * 资讯板块标题
     */
    @ApiModelProperty(value = "资讯板块标题")
    private String sectionCmsTitle;

    /**
     * 项目板块标题
     */
    @ApiModelProperty(value = "项目板块标题")
    private String sectionProjectTitle;

    /**
     * 会员板块标题
     */
    @ApiModelProperty(value = "会员板块标题")
    private String sectionMemberTitle;

    /**
     * 帮助中心板块标题
     */
    @ApiModelProperty(value = "帮助中心板块标题")
    private String sectionHelperTitle;

    /**
     * 首页板块标题
     */
    @ApiModelProperty(value = "首页板块标题")
    private String sectionHomepageTitle;

    /**
     * 资源板块标题
     */
    @ApiModelProperty(value = "资源板块标题")
    private String sectionResourceTitle;

    /**
     * 数据集板块标题
     */
    @ApiModelProperty(value = "数据集板块标题")
    private String sectionDataSetTitle;


    public ZoneDetailDataVo toZoneDetailDataVo() {
        ZoneDetailDataVo target = new ZoneDetailDataVo();
        BeanUtils.copyProperties(this, target);
        return target;
    }

    public ZoneBaseDataVo toZoneBaseDataVo() {
        ZoneBaseDataVo target = new ZoneBaseDataVo();
        BeanUtils.copyProperties(this, target);
        return target;
    }
}
