package com.jxy.marketall.mapper;

import com.jxy.common.datasource.annotation.Master;
import com.jxy.marketall.dto.SubscriptionContentDto;
import com.jxy.marketall.vo.SubscriptionContentVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Master
public interface MsgSubMapper{

    /**
     * 订阅指标
     * @return
     */
    public boolean subscripition(@Param("userId") long userId,@Param("email") String email, @Param("vo") SubscriptionContentVo vo);

    /**
     * 根据用户id、频道channel、具体指标metrics判断是否存在
     * 存在才能执行删除操作 避免删除其他用户的指标订阅关系
     * @return
     */
    public Long checkSubIfExist(@Param("userId") long userId, @Param("vo") SubscriptionContentVo vo);

    /**
     * 根据userId和指标订阅关系id判断数据是否存在
     * 存在才能执行删除操作 避免删除其他用户的指标订阅关系
     * @return
     */
    public boolean checkSubByUserIdAndSubId(@Param("userId") long userId, @Param("id") long id);

    /**
     * 取消订阅
     * @param id
     * @return
     */
    public boolean cancelSubscription(@Param("id") long id);

    /**
     * 获取当前用户的订阅列表
     * @return
     * @param userId
     */
    public List<SubscriptionContentDto> getSubscriptionListByUserId(@Param("userId") Long userId);


    /**
     * 获取订阅了**指标的用户数据
     * @return
     * @param channel
     */
    public List<SubscriptionContentDto> getSubListByChannel(@Param("channel") String channel);

}
