package com.lesingle.creation.vo.registration;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 报名记录 VO
 */
@Data
@Schema(description = "报名记录响应")
public class RegistrationVO {

    @Schema(description = "报名 ID")
    private Long id;

    @Schema(description = "活动 ID")
    private Long contestId;

    @Schema(description = "活动名称")
    private String contestName;

    @Schema(description = "租户 ID")
    private Long tenantId;

    @Schema(description = "参与类型：individual/team")
    private String registrationType;

    @Schema(description = "团队 ID")
    private Long teamId;

    @Schema(description = "团队名称")
    private String teamName;

    @Schema(description = "用户 ID")
    private Long userId;

    @Schema(description = "用户账号")
    private String accountNo;

    @Schema(description = "用户姓名")
    private String accountName;

    @Schema(description = "审核状态：pending/passed/rejected")
    private String registrationState;

    @Schema(description = "报名时间")
    private LocalDateTime registrationTime;

    @Schema(description = "审核原因")
    private String reason;

    @Schema(description = "操作人 ID")
    private Long operator;

    @Schema(description = "操作时间")
    private LocalDateTime operationDate;

    @Schema(description = "指导老师 ID")
    private Long registrant;

    @Schema(description = "作品数量")
    @JsonProperty("_count")
    private WorkCount workCount;

    @Data
    @Schema(description = "作品数量")
    public static class WorkCount {
        @Schema(description = "作品数量")
        private Integer works;
    }
}
