package top.continew.admin.business.service;

import top.continew.admin.business.model.entity.ScoreDO;
import top.continew.admin.business.model.query.ScoreQuery;
import top.continew.admin.business.model.req.ScoreAddReq;
import top.continew.admin.business.model.req.ScoreEditReq;
import top.continew.admin.business.model.resp.ScoreResp;
import top.continew.starter.data.mp.service.IService;
import top.continew.starter.extension.crud.model.query.PageQuery;
import top.continew.starter.extension.crud.model.resp.PageResp;

import java.util.List;

/**
 * 分数业务接口
 *
 * @author jiay
 * @since 2025/06/26 10:24
 */
public interface ScoreService extends IService<ScoreDO> {

    /**
     * 获取分数列表
     *
     * @param query 分数查询条件
     * @return 分数列表
     */
    List<ScoreResp> getScoreList(ScoreQuery query);

    /**
     * 添加分数
     *
     * @param req 分数
     * @return url
     */
    boolean addScore(ScoreAddReq req);

    /**
     * 添加分数
     *
     * @param req 分数
     * @return 添加是否成功
     */
    boolean editScore(ScoreEditReq req);

    /**
     * 添加分数
     *
     * @param id 分数id
     * @return 添加是否成功
     */
    boolean deleteScore(Long id);

    /**
     * 添加分数
     *
     * @param id 分数id
     * @return 分数
     */
    ScoreResp getScore(Long id);

    /**
     * 添加分数
     *
     * @param query     分数查询条件
     * @param pageQuery 分页参数
     * @return 分数分页列表
     */
    PageResp<ScoreResp> getScorePage(ScoreQuery query, PageQuery pageQuery);

}