package com.zcloud.domain.persistence.dataobject;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * web-infrastructure
 *
 * @Author zhaokai
 * @Date 2026-01-29 15:47:57
 */
@Data
@TableName("project_task")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ProjectTaskDO extends BaseDO {
    //业务主键id
    @ApiModelProperty(value = "业务主键id")
    private String projectTaskId;
    //领域类型
    @ApiModelProperty(value = "领域类型")
    private String domainType;
    //领域类型名称
    @ApiModelProperty(value = "领域类型名称")
    private String domainTypeName;
    //领域部门主键id
    @ApiModelProperty(value = "领域部门主键id")
    private String domainDepartmentId;
    //课题名称
    @ApiModelProperty(value = "课题名称")
    private String projectName;
    //课题执行开始时间
    @ApiModelProperty(value = "课题执行开始时间")
    private Date executedStartDate;
    //课题执行结束时间
    @ApiModelProperty(value = "课题执行结束时间")
    private Date executedEndDate;
    //领域组id
    @ApiModelProperty(value = "领域组id")
    private String domainGroupId;
    //课题执行企业id
    @ApiModelProperty(value = "课题执行企业id")
    private Long executeCorpinfoId;
    //课题执行状态(0:评分人员待制定,1:课题组人员待制定,2:已完善待执行,3:执行中,4:已结束)
    @ApiModelProperty(value = "课题执行状态(0:评分人员待制定,1:课题组人员待制定,2:已完善待执行,3:执行中,4:已结束)")
    private Integer executeStatus;
    //评分状态(0:未评分,1:评分中,2:已评分)
    @ApiModelProperty(value = "评分状态(0:未评分,1:评分中,2:已评分)")
    private Integer scoreStatus;
    //评分
    @ApiModelProperty(value = "评分")
    private BigDecimal score;

    @ApiModelProperty(value = "课题执行企业名称")
    @TableField(exist = false)
    private String executeCorpinfoName;

    @ApiModelProperty(value = "领域主管部门名称")
    @TableField(exist = false)
    private String masterDepartmentName;

    @ApiModelProperty(value = "领域组名称")
    @TableField(exist = false)
    private String domainGroupName;
    @ApiModelProperty(value = "领域组组长id")
    @TableField(exist = false)
    private Long teamUserId;

    public ProjectTaskDO(String projectTaskId) {
        this.projectTaskId = projectTaskId;
    }

}

