package top.continew.admin.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.continew.admin.business.model.entity.AssignmentSubmissionsDO;
import top.continew.admin.business.model.req.AssignmentSubmissionsReq;
import top.continew.admin.business.model.req.AssignmentsCorrectReq;
import top.continew.admin.business.model.resp.AssignmentsProgressResp;
import top.continew.admin.business.model.resp.AssignmentsSubmissionsDetailResp;
import top.continew.starter.extension.crud.model.query.PageQuery;
import top.continew.starter.extension.crud.model.resp.PageResp;

/**
 * @author 张波
 * @since 2024/10/22 15:38
 */
public interface AssignmentSubmissionsService extends IService<AssignmentSubmissionsDO> {

    /**
     * 提交作业
     *
     * @param req 作业ID&作业图片信息
     */
    void submit(AssignmentSubmissionsReq req);

    /**
     * 批改作业
     *
     * @param req 作业提交记录ID&分叔&评语
     */
    void correct(AssignmentsCorrectReq req);

    /**
     * 查询作业完成情况
     *
     * @param assignmentsId 作业ID
     * @param pageQuery     分页参数
     * @return 学生作业完成情况
     */
    PageResp<AssignmentsProgressResp> degreeOfCompletion(Long assignmentsId, PageQuery pageQuery);

    /**
     * 查询作业提交记录详情
     *
     * @param submissionsId 提交记录ID
     * @return 提交记录详情
     */
    AssignmentsSubmissionsDetailResp detail(Long submissionsId);

    /**
     * 查询优秀图片列表
     *
     * @param pageQuery 分页条件
     * @return 图片列表
     */
    PageResp<String> getGoodImageList(String dbName, PageQuery pageQuery);
}
