package com.ruoyi.hezhi.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.hezhi.domain.TbMemberSubjectCollect;
import com.ruoyi.hezhi.domain.dto.MemberSubjectCollectDTO;

import java.util.List;
import java.util.Map;

/**
 * 我的收藏题目Service接口
 *
 * @author ruoyi
 * @date 2024-11-07
 */
public interface ITbMemberSubjectCollectService
{
    /**
     * 查询我的收藏题目
     *
     * @param memberSubjectCollectId 我的收藏题目主键
     * @return 我的收藏题目
     */
    public TbMemberSubjectCollect selectTbMemberSubjectCollectByMemberSubjectCollectId(Long memberSubjectCollectId);

    /**
     * 查询我的收藏题目列表
     *
     * @param tbMemberSubjectCollect 我的收藏题目
     * @return 我的收藏题目集合
     */
    public List<TbMemberSubjectCollect> selectTbMemberSubjectCollectList(TbMemberSubjectCollect tbMemberSubjectCollect);

    /**
     * 新增我的收藏题目
     *
     * @param tbMemberSubjectCollect 我的收藏题目
     * @return 结果
     */
    public int insertTbMemberSubjectCollect(TbMemberSubjectCollect tbMemberSubjectCollect);

    /**
     * 修改我的收藏题目
     *
     * @param tbMemberSubjectCollect 我的收藏题目
     * @return 结果
     */
    public int updateTbMemberSubjectCollect(TbMemberSubjectCollect tbMemberSubjectCollect);

    /**
     * 批量删除我的收藏题目
     *
     * @param memberSubjectCollectIds 需要删除的我的收藏题目主键集合
     * @return 结果
     */
    public int deleteTbMemberSubjectCollectByMemberSubjectCollectIds(Long[] memberSubjectCollectIds);

    /**
     * 删除我的收藏题目信息
     *
     * @param memberSubjectCollectId 我的收藏题目主键
     * @return 结果
     */
    public int deleteTbMemberSubjectCollectByMemberSubjectCollectId(Long memberSubjectCollectId);

    /**
     * 收藏或取消收藏题目
     *
     * @param memberSubjectCollectDTO
     * @return ok
     */
    public AjaxResult subjectCollectOrCancelCollect(MemberSubjectCollectDTO memberSubjectCollectDTO);

    /**
     * 题目收藏列表
     *
     * @param params 参数
     * @return 结果
     */
    public List<Map<String,Object>> getMemberSubjectCollectList(Map<String,Object> params);
}
