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

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

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

@Schema(description = "管理后台 - 项目成员 Response VO")
@Data
public class ProjectMemberRespVO {

    @Schema(description = "成员关系编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;
    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
    private Long userId;
    @Schema(description = "用户昵称", example = "小王")
    private String userNickname;
    @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3100000002001")
    private Long roleId;
    @Schema(description = "角色名称", example = "项目经理")
    private String roleName;
    @Schema(description = "角色编码", example = "project_manager")
    private String roleCode;
    @Schema(description = "是否当前项目负责人", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean managerFlag;
    @Schema(description = "状态（0有效 1失效）", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    private Integer status;
    @Schema(description = "加入时间")
    private LocalDateTime joinedTime;
    @Schema(description = "退出时间")
    private LocalDateTime leftTime;
    @Schema(description = "备注", example = "当前负责需求收敛")
    private String remark;
    @ArraySchema(schema = @Schema(description = "非主角色的中文名列表，多角色场景使用（如同人 manager + creator）；单角色时为空数组", example = "项目创建者"))
    private List<String> additionalRoleNames = Collections.emptyList();

}
