package com.microservices.dms.resourceLibrary.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.microservices.common.core.web.domain.BaseEntity;
import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo;

/**
 * 对象 project_resource_library
 *
 * @author microservices
 * @date 2025-04-07
 */
public class ProjectResourceLibrary extends BaseEntity {
    private static final long serialVersionUID = 1L;
    private Long id;
    //项目资源名称
    private String projectName;
    //项目领域
    private String projectDomain;
    //项目领域名称
    private String projectDomainName;
    //
    private String identifier;
    private String userIdentifier;
    //开源项目ID
    private Long projectId;
    //仓库ID
    private Long repositoryId;
    //版本Id
    private Long versionReleasesId;
    //项目是否已公开
    private Long isPublic;
    //发版名称
    private String releaseName;
    //发版时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date releaseDate;
    //发版人
    private String releasePerson;
    //发版类型
    private String releaseType;
    //发版单位
    private String releaseUnit;
    //发版摘要
    private String releaseSummary;
    //发版详情
    private String releaseDetails;
    //联系人
    private String contactPerson;
    //联系时间
    private String contactPhone;
    //是否已转入成果库
    private Long isTransferredToAchievement;
    //转入成果库时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date transferDate;
    //是否精选成果
    private Long isSelectedAchievement;
    //图片
    private String images;
    //附件
    private String attachments;
    private List<KeyValVo<String, String>> attachmentList = new ArrayList<>();

    public String getUserIdentifier() {
        return userIdentifier;
    }

    public void setUserIdentifier(String userIdentifier) {
        this.userIdentifier = userIdentifier;
    }

    public String getProjectDomain() {
        return projectDomain;
    }

    public void setProjectDomain(String projectDomain) {
        this.projectDomain = projectDomain;
    }

    public List<KeyValVo<String, String>> getAttachmentList() {
        return attachmentList;
    }

    public void setAttachmentList(List<KeyValVo<String, String>> attachmentList) {
        this.attachmentList = attachmentList;
    }

    public String getIdentifier() {
        return identifier;
    }

    public void setIdentifier(String identifier) {
        this.identifier = identifier;
    }

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

    public Long getId() {
        return id;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setRepositoryId(Long repositoryId) {
        this.repositoryId = repositoryId;
    }

    public Long getRepositoryId() {
        return repositoryId;
    }

    public void setVersionReleasesId(Long versionReleasesId) {
        this.versionReleasesId = versionReleasesId;
    }

    public Long getVersionReleasesId() {
        return versionReleasesId;
    }

    public void setIsPublic(Long isPublic) {
        this.isPublic = isPublic;
    }

    public Long getIsPublic() {
        return isPublic;
    }

    public void setReleaseName(String releaseName) {
        this.releaseName = releaseName;
    }

    public String getReleaseName() {
        return releaseName;
    }

    public void setReleaseDate(Date releaseDate) {
        this.releaseDate = releaseDate;
    }

    public Date getReleaseDate() {
        return releaseDate;
    }

    public void setReleasePerson(String releasePerson) {
        this.releasePerson = releasePerson;
    }

    public String getReleasePerson() {
        return releasePerson;
    }

    public void setReleaseType(String releaseType) {
        this.releaseType = releaseType;
    }

    public String getReleaseType() {
        return releaseType;
    }

    public void setReleaseUnit(String releaseUnit) {
        this.releaseUnit = releaseUnit;
    }

    public String getReleaseUnit() {
        return releaseUnit;
    }

    public void setReleaseSummary(String releaseSummary) {
        this.releaseSummary = releaseSummary;
    }

    public String getReleaseSummary() {
        return releaseSummary;
    }

    public void setReleaseDetails(String releaseDetails) {
        this.releaseDetails = releaseDetails;
    }

    public String getReleaseDetails() {
        return releaseDetails;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setIsTransferredToAchievement(Long isTransferredToAchievement) {
        this.isTransferredToAchievement = isTransferredToAchievement;
    }

    public Long getIsTransferredToAchievement() {
        return isTransferredToAchievement;
    }

    public void setTransferDate(Date transferDate) {
        this.transferDate = transferDate;
    }

    public Date getTransferDate() {
        return transferDate;
    }

    public void setIsSelectedAchievement(Long isSelectedAchievement) {
        this.isSelectedAchievement = isSelectedAchievement;
    }

    public Long getIsSelectedAchievement() {
        return isSelectedAchievement;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getImages() {
        return images;
    }

    public void setAttachments(String attachments) {
        this.attachments = attachments;
    }

    public String getAttachments() {
        return attachments;
    }

    public String getProjectDomainName() {
        return projectDomainName;
    }

    public void setProjectDomainName(String projectDomainName) {
        this.projectDomainName = projectDomainName;
    }
}
