package com.njcn.rdms.module.project.controller.admin.project.vo.project;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 项目上下文中的当前项目摘要 Response VO")
@Data
public class ProjectContextProjectRespVO {

    @Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;
    @Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "CNPJ2026001")
    private String projectCode;
    @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "客户交付项目")
    private String projectName;
    @Schema(description = "项目类型字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "delivery")
    private String projectType;
    @Schema(description = "项目方向字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "direction_value")
    private String directionCode;
    @Schema(description = "所属产品编号")
    private Long productId;
    @Schema(description = "项目负责人用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long managerUserId;
    @Schema(description = "项目状态编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "pending")
    private String statusCode;
    @Schema(description = "项目状态名称", example = "待开始")
    private String statusName;
    @Schema(description = "是否终态", example = "false")
    private Boolean terminal;
    @Schema(description = "当前状态是否允许编辑项目主数据", example = "true")
    private Boolean allowEdit;
    @Schema(description = "当前状态可执行动作")
    private List<ProjectLifecycleActionRespVO> availableActions;

}
