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

import com.njcn.rdms.module.project.controller.admin.common.vo.CurrentUserRoleVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 产品 Response VO")
@Data
public class ProductRespVO {

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "产品编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "CNPD2026001")
    private String code;

    @Schema(description = "产品方向字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "direction_value")
    private String directionCode;

    @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "RDMS产品平台")
    private String name;

    @Schema(description = "产品经理用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long managerUserId;

    @Schema(description = "产品描述", example = "面向研发管理的一体化产品")
    private String description;

    @Schema(description = "产品状态编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "active")
    private String statusCode;

    @Schema(description = "最近一次状态动作原因", example = "阶段性暂停")
    private String lastStatusReason;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime updateTime;

    @Schema(description = "当前登录用户在该产品担任的角色（无角色则为空数组）")
    private List<CurrentUserRoleVO> currentUserRoles;

}
