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;

/**
 * @author microservices
 * @date 2025-04-09
 */
public class CompetitionResourceLibrary extends BaseEntity {
    private static final long serialVersionUID = 1L;

    private Long id;
    /**
     * 开放竞赛ID
     */
    private Long openCompetitionId;
    /**
     * 开放竞赛名称
     */
    private String openCompetitionName;
    /**
     * 开放竞赛创建者
     */
    private Long competitionUserId;
    /**
     * 竞赛领域
     */
    private String competitionField;
    /**
     * 竞赛状态 status: 0 未上架  1上架
     */
    private String competitionStatus;
    /**
     * 竞赛提交名称
     */
    private String competitionSubmissionName;
    /**
     * 作品提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submissionTime;
    /**
     * 提交者
     */
    private String submitter;
    /**
     * 提交类型
     */
    private String submissionType;
    /**
     * 提交单位
     */
    private String submittingUnit;
    /**
     * 竞赛提交摘要
     */
    private String submissionSummary;
    /**
     * 竞赛提交详情
     */
    private String submissionDetails;
    /**
     * 联系人
     */
    private String contactPerson;
    /**
     * 联系电话
     */
    private String contactPhone;
    /**
     * 是否已转入成果库 0否 1是
     */
    private Integer isTransferredToResultLibrary;
    /**
     * 转入成果库时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date transferredToResultLibraryTime;
    /**
     * 是否精选成果
     */
    private Integer isFeaturedResult;
    /**
     * 图片
     */
    private String image;
    /**
     * 专家审核
     */
    private Integer isExpertAudit;
    /**
     * 附件
     */
    private String attachment;
    private String leader;
    private String identifier;

    public String getIdentifier() {
        return identifier;
    }

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

    public String getLeader() {
        return leader;
    }

    public void setLeader(String leader) {
        this.leader = leader;
    }

    private List<KeyValVo<String, String>> attachmentList = new ArrayList<>();

    public Integer getIsExpertAudit() {
        return isExpertAudit;
    }

    public void setIsExpertAudit(Integer isExpertAudit) {
        this.isExpertAudit = isExpertAudit;
    }

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

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

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

    public Long getId() {
        return id;
    }

    public void setOpenCompetitionId(Long openCompetitionId) {
        this.openCompetitionId = openCompetitionId;
    }

    public Long getOpenCompetitionId() {
        return openCompetitionId;
    }

    public void setOpenCompetitionName(String openCompetitionName) {
        this.openCompetitionName = openCompetitionName;
    }

    public String getOpenCompetitionName() {
        return openCompetitionName;
    }

    public void setCompetitionUserId(Long competitionUserId) {
        this.competitionUserId = competitionUserId;
    }

    public Long getCompetitionUserId() {
        return competitionUserId;
    }

    public void setCompetitionField(String competitionField) {
        this.competitionField = competitionField;
    }

    public String getCompetitionField() {
        return competitionField;
    }

    public void setCompetitionStatus(String competitionStatus) {
        this.competitionStatus = competitionStatus;
    }

    public String getCompetitionStatus() {
        return competitionStatus;
    }

    public void setCompetitionSubmissionName(String competitionSubmissionName) {
        this.competitionSubmissionName = competitionSubmissionName;
    }

    public String getCompetitionSubmissionName() {
        return competitionSubmissionName;
    }

    public void setSubmissionTime(Date submissionTime) {
        this.submissionTime = submissionTime;
    }

    public Date getSubmissionTime() {
        return submissionTime;
    }

    public void setSubmitter(String submitter) {
        this.submitter = submitter;
    }

    public String getSubmitter() {
        return submitter;
    }

    public void setSubmissionType(String submissionType) {
        this.submissionType = submissionType;
    }

    public String getSubmissionType() {
        return submissionType;
    }

    public void setSubmittingUnit(String submittingUnit) {
        this.submittingUnit = submittingUnit;
    }

    public String getSubmittingUnit() {
        return submittingUnit;
    }

    public void setSubmissionSummary(String submissionSummary) {
        this.submissionSummary = submissionSummary;
    }

    public String getSubmissionSummary() {
        return submissionSummary;
    }

    public void setSubmissionDetails(String submissionDetails) {
        this.submissionDetails = submissionDetails;
    }

    public String getSubmissionDetails() {
        return submissionDetails;
    }

    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 setIsTransferredToResultLibrary(Integer isTransferredToResultLibrary) {
        this.isTransferredToResultLibrary = isTransferredToResultLibrary;
    }

    public Integer getIsTransferredToResultLibrary() {
        return isTransferredToResultLibrary;
    }

    public void setTransferredToResultLibraryTime(Date transferredToResultLibraryTime) {
        this.transferredToResultLibraryTime = transferredToResultLibraryTime;
    }

    public Date getTransferredToResultLibraryTime() {
        return transferredToResultLibraryTime;
    }

    public void setIsFeaturedResult(Integer isFeaturedResult) {
        this.isFeaturedResult = isFeaturedResult;
    }

    public Integer getIsFeaturedResult() {
        return isFeaturedResult;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getImage() {
        return image;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getAttachment() {
        return attachment;
    }
}
