package com.pcloud.book.cultivate.biz;

import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.cultivate.dto.CreateCultivateDTO;
import com.pcloud.book.cultivate.dto.CultivateDTO;
import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.FriendDTO;
import com.pcloud.book.cultivate.dto.GiveEnergyDTO;
import com.pcloud.book.cultivate.dto.HoldSeatDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.Cultivate;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRecord;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.book.personal.dto.PersonalMedalRecordDto;
import com.pcloud.common.core.mq.DelayQueueDTO;
import com.pcloud.common.page.PageBeanNew;

import java.util.List;

public interface CultivateBiz {
    Long createCultivate(CreateCultivateDTO createCultivateDTO);

    Cultivate getCultivate(Long wechatUserId);

    void createCultivateRobotClassify(CultivateRobotClassify cultivateRobotClassify);

    void energyConsumption(EnergyConsumptionDTO energyConsumptionDTO);

    void dealDelayEnergyConsumption(DelayQueueDTO delayQueueDTO);

    void fishBallConversion(FishBallConversionDTO fishBallConversionDTO);

    Long createCultivateRecord(CultivateRecord cultivateRecord);

    void addUseSkillRecord(Long wechatUserId, SkillUseDTO skillUseDTO);

    void fishBallPick(FishBallPickDTO fishBallPickDTO);

    Integer getFishBallNotPick(Long cultivateId);

    PageBeanNew<CultivateRecord> getCultivateRecordList(Long cultivateId, Long wechatUserId, Integer currentPage, Integer numPerPage);

    Long getLoginDays(Long wechatUserId);

    Integer getRanking(Long wechatUserId);

    String shareMedal(Long wechatUserId);

     List<PersonalMedalRecordDto> getUserMedalList(Long wechatUserId);

    Integer getResidueLightTime(Long cultivateId);

    Long createCultivateBookUser(CultivateBookUser cultivateBookUser);

    CultivateBookUser getLastCultivateBookUser(Long wechatUserId);

    PageBeanNew<SearchBookVO> getBookSearchRecord(Long wechatUserId, Integer currentPage, Integer numPerPage);

    List<FriendDTO> getFriendList(Long cultivateId);

    void giveEnergy(GiveEnergyDTO giveEnergyDTO);

    //占座
    void holdSeat(HoldSeatDTO holdSeatDTO);

    //踢人
    void kickPeople(HoldSeatDTO holdSeatDTO);

    //退出
    Integer signOut(HoldSeatDTO holdSeatDTO);

    //找回  返回好友养成id
    Long getBack(Long cultivateId);

    //占座好友
    List<FriendDTO> getHoldSeatFriend(Long cultivateId);

    //判断占座之前是否在学习中
    Boolean beforeHoldSeat(Long cultivateId);

    CultivateDTO getCultivateBaseInfo(Long cultivateId);
}
