package com.ruoyi.mall.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.mall.domain.Bo.CollectSchoolBO;
import com.ruoyi.mall.domain.MallMemberCollectSchool;
import com.ruoyi.mall.domain.Vo.MallMemberCollectSchoolVo;
import com.ruoyi.mall.domain.Vo.SchoolVO;

/**
 * 用户学校收藏Service接口
 *
 * @author ruoyi
 * @date 2023-10-26
 */
public interface IMallMemberCollectSchoolService
{
    /**
     * 查询用户学校收藏
     *
     * @param collectSchoolId 用户学校收藏主键
     * @return 用户学校收藏
     */
    public MallMemberCollectSchool selectMallMemberCollectSchoolByCollectSchoolId(Long collectSchoolId);

    /**
     * 查询用户学校收藏列表
     *
     * @param mallMemberCollectSchool 用户学校收藏
     * @return 用户学校收藏集合
     */
    public List<MallMemberCollectSchool> selectMallMemberCollectSchoolList(MallMemberCollectSchool mallMemberCollectSchool);

    /**
     * 查询 我的-收藏学校列表
     * @param mallMemberCollectSchool 用户学校收藏
     * @return 用户学校收藏集合 包含学校详情
     */
    List<MallMemberCollectSchoolVo> selectVoForMineList(MallMemberCollectSchool mallMemberCollectSchool);

    /**
     * 新增用户学校收藏
     *
     * @param mallMemberCollectSchool 用户学校收藏
     * @return 结果
     */
    public int insertMallMemberCollectSchool(MallMemberCollectSchool mallMemberCollectSchool);

    /**
     * 修改用户学校收藏
     *
     * @param mallMemberCollectSchool 用户学校收藏
     * @return 结果
     */
    public int updateMallMemberCollectSchool(MallMemberCollectSchool mallMemberCollectSchool);

    /**
     * 批量删除用户学校收藏
     *
     * @param collectSchoolIds 需要删除的用户学校收藏主键集合
     * @return 结果
     */
    public int deleteMallMemberCollectSchoolByCollectSchoolIds(Long[] collectSchoolIds);

    /**
     * 删除用户学校收藏信息
     *
     * @param collectSchoolId 用户学校收藏主键
     * @return 结果
     */
    public int deleteMallMemberCollectSchoolByCollectSchoolId(Long collectSchoolId);

    /**
     * 收藏/取消收藏学校
     * @param collectSchoolBO 参数类
     * @return 结果
     */
    public AjaxResult collectSchool(CollectSchoolBO collectSchoolBO);

    /**
     * 收藏状态
     * @param id 用户id
     * @param schoolId 学校id
     * @param batchId 批次id
     * @return 结果
     */
    public AjaxResult getCollectStatus(Long id, Long schoolId, Long batchId);

    /**
     * 收藏学校列表
     * @param id 用户id
     * @param pageNum 页码
     * @param pageSize 每页个数
     * @return 结果
     */
    public PageInfo<SchoolVO> selectCollectSchoolList(Long id, Integer pageNum, Integer pageSize);

}
