package com.microservices.zone.resource.domain;

import com.microservices.common.core.utils.bean.BeanUtils;
import com.microservices.zone.detail.domain.ZoneSort;
import com.microservices.zone.resource.domain.vo.ZoneResourceDataVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 特色专区资源聚合对象 zone_resource
 *
 * @author otto
 * @date 2023-06-27
 */
@Data
public class ZoneResource extends ZoneSort {
    public static final String table_name = "zone_resource";

    /**
     * 资源名称
     */
   @ApiModelProperty(value = "资源名称")
    private String name;

    /**
     * 资源介绍
     */
    @ApiModelProperty(value = "资源介绍")
    private String introduction;

    /**
     * 资源文件Id列表
     */
    @ApiModelProperty(value = "资源文件Id列表")
    private String fileIds;

    /**
     * 资源领域Id
     */
    @ApiModelProperty(value = "资源领域Id")
    private Long domainId;

    /**
     * 资源类型Id列表
     */
    @ApiModelProperty(value = "资源类型Id列表")
    private Long[] typeIds;

    /**
     * 查找的资源类型Id
     */
    @ApiModelProperty(value = "查找的资源类型Id")
    private Long searchTypeId;

    /**
     * 文本编辑器类型
     */
    private String editorType;

    @ApiModelProperty(value = "资源简介")
    private String summary;

    @ApiModelProperty(value = "审核状态（0：待审核，1：审核通过 2：审核不通过）")
    private String auditStatus;
    /**
     * 是否首页展示（0代表不展示 1代表展示）
     */
    @ApiModelProperty(value = "是否首页展示（0代表不展示 1代表展示）")
    private String isHomepage;
    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    private Date auditTime;
    @ApiModelProperty(value = "审核人")
    private String auditBy;
    /**
     * 资源类型
     */
    private List<ZoneResourceType> zoneResourceTypeList;
    /**
     * 资源领域
     */
    private ZoneResourceDomain zoneResourceDomain;

    public ZoneResourceDataVo toZoneResourceDataVo() {
        ZoneResourceDataVo target = new ZoneResourceDataVo();
        BeanUtils.copyProperties(this, target);
        if (this.getZoneResourceDomain() != null) {
            target.setDomainName(this.getZoneResourceDomain().getName());
        }

        return target;
    }
}
