package com.ruoyi.course.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import com.ruoyi.course.domain.vo.ScheduleDetailVO;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Data
@Schema(description = "排课结果")
public class PaikeResultDTO {

    @Schema(description = "任务ID", example = "1")
    private Long taskId;

    @Schema(description = "任务名称", example = "2024年春季学期排课")
    private String taskName;

    @Schema(description = "状态", example = "2", allowableValues = {"0=待排课", "1=排课中", "2=已完成", "3=已失败"})
    private Integer status;

    @Schema(description = "完成时间", example = "2024-01-01 10:00:00")
    private LocalDateTime finishTime;

    @Schema(description = "总班级数", example = "30")
    private Integer totalClasses;

    @Schema(description = "总教师数", example = "50")
    private Integer totalTeachers;

    @Schema(description = "总课程数", example = "100")
    private Integer totalCourses;

    @Schema(description = "冲突数量", example = "5")
    private Integer conflictCount;

    @Schema(description = "总体评分", example = "85.5")
    private BigDecimal overallScore;

    @Schema(description = "排课详情统计")
    private Map<String, Object> statistics;

    @Schema(description = "排课详情列表")
    private List<ScheduleDetailVO> scheduleDetails;
}