package com.ruoyi.mall.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.mall.domain.Bo.TargetSchoolBO;
import com.ruoyi.mall.domain.MallMemberCollectSchool;
import com.ruoyi.mall.domain.MallMemberTargetSchool;
import com.ruoyi.mall.domain.Vo.MallMemberCollectSchoolVo;
import com.ruoyi.mall.domain.Vo.MallMemberTargetSchoolVo;

/**
 * 目标学校Service接口
 *
 * @author ruoyi
 * @date 2023-10-26
 */
public interface IMallMemberTargetSchoolService
{
    /**
     * 查询目标学校
     *
     * @param targetId 目标学校主键
     * @return 目标学校
     */
    public MallMemberTargetSchool selectMallMemberTargetSchoolByTargetId(Long targetId);

    /**
     * 查询目标学校列表
     *
     * @param mallMemberTargetSchool 目标学校
     * @return 目标学校集合
     */
    public List<MallMemberTargetSchool> selectMallMemberTargetSchoolList(MallMemberTargetSchool mallMemberTargetSchool);
    /**
     * 查询 我的-目标学校列表
     * @param mallMemberTargetSchool 目标学校
     * @return 用户学校目标集合 包含学校详情
     */
    List<MallMemberTargetSchoolVo> selectVoForMineList(MallMemberTargetSchool mallMemberTargetSchool);
    /**
     * 新增目标学校
     *
     * @param mallMemberTargetSchool 目标学校
     * @return 结果
     */
    public int insertMallMemberTargetSchool(MallMemberTargetSchool mallMemberTargetSchool);

    /**
     * 修改目标学校
     *
     * @param mallMemberTargetSchool 目标学校
     * @return 结果
     */
    public int updateMallMemberTargetSchool(MallMemberTargetSchool mallMemberTargetSchool);

    /**
     * 批量删除目标学校
     *
     * @param targetIds 需要删除的目标学校主键集合
     * @return 结果
     */
    public int deleteMallMemberTargetSchoolByTargetIds(Long[] targetIds);

    /**
     * 删除目标学校信息
     *
     * @param targetId 目标学校主键
     * @return 结果
     */
    public int deleteMallMemberTargetSchoolByTargetId(Long targetId);

    /**
     * 设定/取消目标学校
     * @param targetSchoolBO 学校信息
     * @return 结果
     */
    public AjaxResult setTargetSchool(TargetSchoolBO targetSchoolBO);

    /**
     * 目标状态
     * @param id 用户id
     * @param schoolId 学校id
     * @param batchId 批次id
     * @return 结果
     */
    public AjaxResult getTargetStatus(Long id, Long schoolId, Long batchId);
}
