package com.lesingle.edu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lesingle.edu.dto.request.TaskFeedbackRequest;
import com.lesingle.edu.dto.response.TaskFeedbackResponse;
import com.lesingle.edu.entity.TaskFeedback;

/**
 * 任务评价 Service
 */
public interface TaskFeedbackService extends IService<TaskFeedback> {

    /**
     * 创建或更新评价
     * @param completionId 完成记录ID
     * @param request 评价请求
     * @return 评价响应
     */
    TaskFeedbackResponse createOrUpdateFeedback(Long completionId, TaskFeedbackRequest request);

    /**
     * 创建或更新评价（指定教师ID）
     * @param completionId 完成记录ID
     * @param request 评价请求
     * @param teacherId 教师ID（从当前登录用户获取）
     * @return 评价响应
     */
    TaskFeedbackResponse createOrUpdateFeedback(Long completionId, TaskFeedbackRequest request, Long teacherId);

    /**
     * 根据完成记录ID获取评价
     * @param completionId 完成记录ID
     * @return 评价响应
     */
    TaskFeedbackResponse getFeedbackByCompletionId(Long completionId);

    /**
     * 根据任务ID和学生ID获取评价
     * @param taskId 任务ID
     * @param studentId 学生ID
     * @return 评价响应
     */
    TaskFeedbackResponse getFeedbackByTaskIdAndStudentId(Long taskId, Long studentId);

    /**
     * 检查是否已评价
     * @param completionId 完成记录ID
     * @return 是否已评价
     */
    boolean hasFeedback(Long completionId);
}
