package com.lesingle.edu.dto.response;

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

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

/**
 * 课程环节响应
 * 用于返回课程环节信息给前端
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "课程环节响应")
public class CourseLessonResponse {

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

    @Schema(description = "课程 ID")
    private Long courseId;

    @Schema(description = "课程类型")
    private String lessonType;

    @Schema(description = "名称")
    private String name;

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

    @Schema(description = "时长（分钟）")
    private Integer duration;

    @Schema(description = "视频路径")
    private String videoPath;

    @Schema(description = "视频名称")
    private String videoName;

    @Schema(description = "PPT 路径")
    private String pptPath;

    @Schema(description = "PPT 名称")
    private String pptName;

    @Schema(description = "PDF 路径")
    private String pdfPath;

    @Schema(description = "PDF 名称")
    private String pdfName;

    @Schema(description = "教学目标")
    private String objectives;

    @Schema(description = "教学准备")
    private String preparation;

    @Schema(description = "教学延伸")
    private String extension;

    @Schema(description = "教学反思")
    private String reflection;

    @Schema(description = "评估数据")
    private String assessmentData;

    @Schema(description = "是否使用模板")
    private Boolean useTemplate;

    @Schema(description = "排序号")
    private Integer sortOrder;

    @Schema(description = "教学环节列表")
    private List<LessonStepResponse> steps;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}
