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

import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 团队工作报告统计 Response VO")
@Data
public class TeamReportSummaryRespVO {

    @Schema(description = "应填人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "18")
    private Integer totalShouldSubmit;

    @Schema(description = "已提交人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "12")
    private Integer submittedCount;

    @Schema(description = "未提交人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "6")
    private Integer unsubmittedCount;

    @Schema(description = "待审批人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
    private Integer pendingApprovalCount;

    @Schema(description = "未提交人员列表")
    private List<PendingUser> unsubmittedUsers;

    @Schema(description = "未提交人员")
    @Data
    public static class PendingUser {

        @Schema(description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2042074259501088770")
        @com.fasterxml.jackson.databind.annotation.JsonSerialize(using = ToStringSerializer.class)
        private Long userId;

        @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "戴坤")
        private String userNickname;
    }
}
