package com.microservices.dms.achievementLibrary.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.microservices.common.core.annotation.Excel;
import com.microservices.common.core.web.domain.BaseEntity;

/**
 * 成果对象 achievementsll
 *
 * @author microservices
 * @date 2025-04-02
 */
public class Achievements extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 成果唯一标识
     */
    private Long id;

    /**
     * 成果名称
     */
    @Excel(name = "成果名称")
    private String achievementName;
    /**
     * 成果展示名称
     */
    private String showAchievementName;

    /**
     * 成果领域1
     */
    @Excel(name = "成果领域1")
    private String field1;
    //成果领域名称
    private String field1Name;

    /**
     * 成果领域2
     */
    @Excel(name = "成果领域2")
    private String field2;

    /**
     * 成果领域3
     */
    @Excel(name = "成果领域3")
    private String field3;

    /**
     * 成果类型
     */
    @Excel(name = "成果类型")
    private String achievementType;

    /**
     * 成果来源
     */
    @Excel(name = "成果来源")
    private String source;

    /**
     * 成果来源ID
     */
    @Excel(name = "成果来源ID")
    private Long sourceId;

    /**
     * 成果来源跳转链接
     */
    @Excel(name = "成果来源跳转链接")
    private String sourceLink;

    /**
     * 成果标签
     */
    @Excel(name = "成果标签")
    private String tags;

    /**
     * 成果摘要
     */
    @Excel(name = "成果摘要")
    private String summary;

    /**
     * 发布单位
     */
    @Excel(name = "发布单位")
    private String publishingUnit;

    /**
     * 成果地址
     */
    @Excel(name = "成果地址")
    private String address;

    /**
     * 是否精选成果
     */
    @Excel(name = "是否精选成果")
    private Integer isFeatured;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contactPerson;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String contactNumber;

    /**
     * 成果所属人ID
     */
    @Excel(name = "成果所属人ID")
    private String ownerId;

    /**
     * 成果所属人名称
     */
    @Excel(name = "成果所属人名称")
    private String ownerName;

    /**
     * 成果状态
     */
    @Excel(name = "成果状态")
    private String status;

    /**
     * 成果详情
     */
    @Excel(name = "成果详情")
    private String details;

    /**
     * 成果审核人
     */
    @Excel(name = "成果审核人")
    private String reviewer;

    /**
     * 成果审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成果审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewDate;

    /**
     * 成果审核意见
     */
    @Excel(name = "成果审核意见")
    private String reviewComments;

    /**
     * 成果图片
     */
    @Excel(name = "成果图片")
    private String images;

    /**
     * 成果附件
     */
    @Excel(name = "成果附件")
    private String attachments;

    private Long clickSum;
    private Long watcherSum;
    private Long favoriteSum;
    private Float hotRank;
    private Long attachmentCount;
    private Integer isExpertAudit;
    private String userImg;
    private String userNickName;
    public String gender;
    private String userLogin;
    private List<Map<String,Object>> dockingUserInfo;

    public List<Map<String, Object>> getDockingUserInfo() {
        return dockingUserInfo;
    }

    public void setDockingUserInfo(List<Map<String, Object>> dockingUserInfo) {
        this.dockingUserInfo = dockingUserInfo;
    }

    public String getShowAchievementName() {
        return showAchievementName;
    }

    public void setShowAchievementName(String showAchievementName) {
        this.showAchievementName = showAchievementName;
    }

    public String getUserImg() {
        return userImg;
    }

    public void setUserImg(String userImg) {
        this.userImg = userImg;
    }

    public String getUserNickName() {
        return userNickName;
    }

    public void setUserNickName(String userNickName) {
        this.userNickName = userNickName;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getUserLogin() {
        return userLogin;
    }

    public void setUserLogin(String userLogin) {
        this.userLogin = userLogin;
    }

    public String getField1Name() {
        return field1Name;
    }

    public void setField1Name(String field1Name) {
        this.field1Name = field1Name;
    }

    public Long getWatcherSum() {
        return watcherSum;
    }

    public void setWatcherSum(Long watcherSum) {
        this.watcherSum = watcherSum;
    }

    public Long getFavoriteSum() {
        return favoriteSum;
    }

    public void setFavoriteSum(Long favoriteSum) {
        this.favoriteSum = favoriteSum;
    }

    public Float getHotRank() {
        return hotRank;
    }

    public void setHotRank(Float hotRank) {
        this.hotRank = hotRank;
    }

    public Integer getIsExpertAudit() {
        return isExpertAudit;
    }

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

    public Long getAttachmentCount() {
        return attachmentCount;
    }

    public void setAttachmentCount(Long attachmentCount) {
        this.attachmentCount = attachmentCount;
    }

    public Long getClickSum() {
        return clickSum;
    }

    public void setClickSum(Long clickSum) {
        this.clickSum = clickSum;
    }

    private List<KeyValVo> attachmentList;

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

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

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

    public Long getId() {
        return id;
    }

    public void setAchievementName(String achievementName) {
        this.achievementName = achievementName;
    }

    public String getAchievementName() {
        return achievementName;
    }

    public void setField1(String field1) {
        this.field1 = field1;
    }

    public String getField1() {
        return field1;
    }

    public void setField2(String field2) {
        this.field2 = field2;
    }

    public String getField2() {
        return field2;
    }

    public void setField3(String field3) {
        this.field3 = field3;
    }

    public String getField3() {
        return field3;
    }

    public void setAchievementType(String achievementType) {
        this.achievementType = achievementType;
    }

    public String getAchievementType() {
        return achievementType;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getSource() {
        return source;
    }

    public void setSourceId(Long sourceId) {
        this.sourceId = sourceId;
    }

    public Long getSourceId() {
        return sourceId;
    }

    public void setSourceLink(String sourceLink) {
        this.sourceLink = sourceLink;
    }

    public String getSourceLink() {
        return sourceLink;
    }

    public void setTags(String tags) {
        this.tags = tags;
    }

    public String getTags() {
        return tags;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getSummary() {
        return summary;
    }

    public void setPublishingUnit(String publishingUnit) {
        this.publishingUnit = publishingUnit;
    }

    public String getPublishingUnit() {
        return publishingUnit;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setIsFeatured(Integer isFeatured) {
        this.isFeatured = isFeatured;
    }

    public Integer getIsFeatured() {
        return isFeatured;
    }

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

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setOwnerId(String ownerId) {
        this.ownerId = ownerId;
    }

    public String getOwnerId() {
        return ownerId;
    }

    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }

    public String getOwnerName() {
        return ownerName;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDetails(String details) {
        this.details = details;
    }

    public String getDetails() {
        return details;
    }

    public void setReviewer(String reviewer) {
        this.reviewer = reviewer;
    }

    public String getReviewer() {
        return reviewer;
    }

    public void setReviewDate(Date reviewDate) {
        this.reviewDate = reviewDate;
    }

    public Date getReviewDate() {
        return reviewDate;
    }

    public void setReviewComments(String reviewComments) {
        this.reviewComments = reviewComments;
    }

    public String getReviewComments() {
        return reviewComments;
    }

    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;
    }

}
