package com.reading.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reading.platform.dto.request.LessonCreateRequest;
import com.reading.platform.dto.request.LessonUpdateRequest;
import com.reading.platform.entity.Lesson;

import java.time.LocalDate;
import java.util.List;

/**
 * Lesson Service Interface
 */
public interface LessonService {

    Lesson createLesson(Long tenantId, LessonCreateRequest request);

    Lesson updateLesson(Long id, LessonUpdateRequest request);

    Lesson getLessonById(Long id);

    Page<Lesson> getLessonPage(Long tenantId, Integer pageNum, Integer pageSize, Long classId, Long teacherId, String status, LocalDate startDate, LocalDate endDate);

    Page<Lesson> getTeacherLessons(Long teacherId, Integer pageNum, Integer pageSize, String status, LocalDate startDate, LocalDate endDate);

    void deleteLesson(Long id);

    void startLesson(Long id);

    void completeLesson(Long id);

    void cancelLesson(Long id);

    List<Lesson> getTodayLessons(Long tenantId);

}
