package com.reading.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reading.platform.dto.request.TaskCreateRequest;
import com.reading.platform.dto.request.TaskUpdateRequest;
import com.reading.platform.entity.Task;

import java.util.List;

/**
 * Task Service Interface
 */
public interface TaskService {

    Task createTask(Long tenantId, Long creatorId, String creatorRole, TaskCreateRequest request);

    Task updateTask(Long id, TaskUpdateRequest request);

    Task getTaskById(Long id);

    Page<Task> getTaskPage(Long tenantId, Integer pageNum, Integer pageSize, String keyword, String type, String status);

    Page<Task> getTasksByStudentId(Long studentId, Integer pageNum, Integer pageSize, String status);

    void deleteTask(Long id);

    void completeTask(Long taskId, Long studentId, String content, String attachments);

    List<Task> getTasksByClassId(Long classId);

}
