package com.copy.trade.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.copy.trade.entity.form.FollowForm;
import com.copy.trade.entity.po.Follow;
import com.baomidou.mybatisplus.extension.service.IService;
import com.copy.trade.entity.vo.FollowVo;
import com.copy.trade.entity.vo.FollowerVo;
import com.copy.trade.entity.vo.TraderVo;
import com.copy.trade.enums.FollowStatusEnum;
import lombok.Getter;

/**
 * <p>
 * 跟随表 服务类
 * </p>
 *
 * @author wz
 * @since 2022-11-08
 */
public interface IFollowService extends IService<Follow> {

    Boolean following(Long customerId, FollowForm followForm,Long memberId,String token);

    FollowVo info(Long customerId, Long traderId);

    Boolean update(Long customerId, FollowForm followForm);
    
    FollowForm getConfig(Long customerId, Long traderId);

    Boolean unfollow(Long customerId, Long traderId, FollowStatusEnum followStatusEnum);

    Integer countByTrader(Long traderId);

    Page<TraderVo> followingList(Page page, Long customerId);

    Boolean isFollow(Long customerId, Long traderId);

    Page<FollowerVo> followers(Page page, Long traderId);
    
    Integer followerCount(Long traderId);
}
