package com.lesingle.creation.vo.work;

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

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

/**
 * 作品 VO
 */
@Data
@Schema(description = "作品响应")
public class WorkVO {

    @Schema(description = "作品 ID")
    private Long id;

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

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

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

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

    @Schema(description = "作品编号")
    private String workNo;

    @Schema(description = "作品标题")
    private String title;

    @Schema(description = "作品描述")
    private String description;

    @Schema(description = "文件列表（JSON）")
    private String files;

    @Schema(description = "版本号")
    private Integer version;

    @Schema(description = "是否最新版本")
    private Boolean isLatest;

    @Schema(description = "作品状态：submitted/reviewing/returned")
    private String status;

    @Schema(description = "提交时间")
    private LocalDateTime submitTime;

    @Schema(description = "提交人 ID")
    private Long submitterUserId;

    @Schema(description = "提交人账号")
    private String submitterAccountNo;

    @Schema(description = "提交来源：student/teacher/parent")
    private String submitSource;

    @Schema(description = "预览图 URL")
    private String previewUrl;

    @Schema(description = "预览图 URL 数组（JSON）")
    private String previewUrls;

    @Schema(description = "AI 模型元数据（JSON）")
    private String aiModelMeta;

    @Schema(description = "有效状态：1-有效，2-失效")
    private Integer validState;

    @Schema(description = "附件列表")
    private List<WorkAttachmentVO> attachments;

    @Schema(description = "参赛者姓名")
    private String participantName;

    @Schema(description = "参赛者类型：personal/team")
    private String participantType;
}
