package com.cyksj.service.gemini; import com.cyksj.model.entity.GeminiUser; import com.cyksj.model.response.GeminiCarPageResponse; import com.cyksj.model.response.GeminiCarStatusResponse; import com.cyksj.model.response.GeminiConversationCountResponse; import com.cyksj.model.views.GeminiCarInfoView; import com.cyksj.model.views.GeminiUserView; import com.ejlchina.searcher.SearchResult; import java.time.LocalDateTime; /** * Gemini镜像服务 * * @author chan * @date 2025/1/4 */ public interface GeminiService { /** * 获取用户信息 */ GeminiUserView getUserInfo(long userId, Long relationId); /** * 根据token查找用户 */ GeminiUser findByUserTokenAndExpireTimeAfter(String userToken, LocalDateTime now); /** * 检查车票账户 */ GeminiUser checkCarAccount(Long userId, Long relationId); /** * 获取GeminiUser */ GeminiUser getGeminiUser(long userId, Long relationId); /** * 获取登录URL */ String getCarLoginUrl(String domain, Long userId, Long relationId, String carId); /** * 清除次数 */ void clearNum(String userToken) throws Exception; /** * 根据relationId清除次数 */ void clearNumByRelationId(Long relationId) throws Exception; /** * 调用镜像端 /carpage 获取车队列表 */ GeminiCarPageResponse getCarPage(String domain, int page, int size); /** * 调用镜像端 /status 获取账号状态 */ GeminiCarStatusResponse getCarStatus(String domain, String carId); /** * 获取车队列表 */ SearchResult getCarInfoList(String domain, int page, int size); /** * 获取单个车队状态 */ GeminiCarInfoView getCarInfo(String domain, String carId); /** * 获取用户对话次数详情 */ GeminiConversationCountResponse getConversationCountDetail(String userToken); }