package com.seer.teach.teacher.common.dto;

import com.seer.teach.common.enums.teacher.LessonStateEnum;
import lombok.Data;

/**
 * 课程上下文数据传输对象
 * 用于封装课程执行过程中的状态信息和相关数据
 */
@Data
public class LessonContextDTO {

    /**
     * 课程状态枚举
     */
    private LessonStateEnum state;

    /**
     * 教学数据传输对象
     */
    private TeachDTO teachDTO;

    /**
     * 音频排序标识
     */
    private int audioSort;

    /**
     * 是否等待用户回答标识
     */
    private boolean waitingForUserAnswer;

    /**
     * 是否正在播放音频标识
     */
    private boolean playingAudio;

    /**
     * 课程总结是否已播放标识
     */
    private boolean summaryPlayed;

    /**
     * 重置所有标志位
     * 将等待用户回答、播放音频、总结播放等状态标识重置为初始状态
     */
    public void resetFlags() {
        this.waitingForUserAnswer = false;
        this.playingAudio = false;
        this.summaryPlayed = false;
        this.audioSort = 0;
    }
}
