package com.njcn.rdms.module.system.controller.admin.user.vo.userManagementRelation;

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

import java.util.List;

/**
 * 用户管理链路树形 Response VO
 * 
 * 用于前端树形控件展示用户的上下级层级关系
 * 包含关系记录的主键ID，便于前端执行删除和更新操作
 *
 * @author hongawen
 */
@Schema(description = "管理后台 - 用户管理链路树形 Response VO")
@Data
public class UserManagementRelationTreeRespVO {

    /**
     * 关系记录主键ID
     * 用于前端执行删除和更新操作
     */
    @Schema(description = "关系记录主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long userId;

    /**
     * 用户昵称
     */
    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    private String userNickname;

    /**
     * 上级用户ID
     * 最高领导此字段为null
     */
    @Schema(description = "上级用户ID", example = "1")
    private Long managerUserId;

    /**
     * 上级用户昵称
     * 最高领导此字段为null
     */
    @Schema(description = "上级用户昵称", example = "李四")
    private String managerNickname;

    /**
     * 下级用户列表
     * 基层员工此字段为空列表
     */
    @Schema(description = "下级用户列表")
    private List<UserManagementRelationTreeRespVO> children;

}
