package com.reading.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reading.platform.dto.request.CourseCreateRequest;
import com.reading.platform.dto.request.CourseUpdateRequest;
import com.reading.platform.entity.Course;

import java.util.List;

/**
 * Course Service Interface
 */
public interface CourseService {

    Course createCourse(Long tenantId, CourseCreateRequest request);

    Course updateCourse(Long id, CourseUpdateRequest request);

    Course getCourseById(Long id);

    Page<Course> getCoursePage(Long tenantId, Integer pageNum, Integer pageSize, String keyword, String category, String status);

    Page<Course> getSystemCoursePage(Integer pageNum, Integer pageSize, String keyword, String category);

    void deleteCourse(Long id);

    void publishCourse(Long id);

    void archiveCourse(Long id);

    List<Course> getCoursesByTenantId(Long tenantId);

}
