package com.copy.trade.service;


import com.copy.trade.entity.form.AgentStudentPositionForm;
import com.copy.trade.entity.form.StudentPositionForm;
import com.copy.trade.entity.po.Follow;
import com.copy.trade.entity.vo.FolloweInforAgentVo;
import com.copy.trade.entity.vo.FollowerAgentVo;
import com.copy.trade.entity.vo.FollowerVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.copy.trade.enums.FollowStatusEnum;

import java.util.Date;
import java.util.List;

import org.springframework.web.bind.annotation.RequestParam;


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

    List<Follow> getByCustomerId(Long customerId);

    Boolean unfollow(Follow follow, FollowStatusEnum followStatusEnum);

    Integer countByTrader(Long traderId, String startTime);
    
    Integer countByTraderAndByEndTime(Long traderId, Date endTime);
    
    Integer countByTraderToday(Long traderId, Date startTime);

    Integer followerCount(Long traderId);
    
    Integer followerCountByStatus(Long traderId, FollowStatusEnum followStatusEnum);
    
    List<Long> followering(Long traderId);
    
    Page<FollowerVo> followers(StudentPositionForm studentPositionForm);
    
    Page<FollowerAgentVo> followersAgent(AgentStudentPositionForm studentPositionForm);
    
    FolloweInforAgentVo selectFollowInforAgent(String subIds);
    
    Boolean removeFollow(Long customerId,Long traderId);
    

}
