import 'package:PiliPlus/http/api.dart';
import 'package:PiliPlus/models/common/account_type.dart';

abstract final class ApiType {
  // TODO: grpc api type
  static const Map<AccountType, Set<String>> apiTypeSet = {
    AccountType.heartbeat: {
      Api.videoIntro,
      Api.replyList,
      Api.replyReplyList,

      // history
      Api.heartBeat,
      Api.historyReport,
      Api.roomEntryAction,
      Api.liveLikeReport,
      Api.mediaListHistory,
      // Api.historyList,
      // Api.pauseHistory,
      // Api.clearHistory,
      // Api.delHistory,
      // Api.searchHistory,
      // Api.historyStatus,
      // progress
      Api.pgcInfo,
      Api.pugvInfo,

      Api.ab2c,
      Api.liveRoomInfo,
      Api.liveRoomInfoH5,
      Api.onlineTotal,
      Api.dynamicDetail,
      Api.aiConclusion,
      Api.seasonArchives,
      Api.seriesArchives,
      Api.liveRoomDmToken,
      Api.liveRoomDmPrefetch,
      Api.superChatMsg,
      Api.searchByType,
      Api.dynSearch,
      Api.searchArchive,

      // Api.memberInfo,
      // Api.bgmDetail,
      // Api.space,
      // Api.spaceAudio,
      // Api.spaceComic,
      // Api.spaceArchive,
      // Api.spaceChargingArchive,
      // Api.spaceSeason,
      // Api.spaceSeries,
      // Api.spaceBangumi,
      // Api.spaceOpus,
      // Api.spaceFav,
      // Api.seasonSeries,
      // Api.matchInfo,
      // Api.articleList,
      // Api.opusDetail,
      // Api.articleView,
      // Api.articleInfo,
    },
    AccountType.recommend: {
      Api.recommendListWeb,
      Api.recommendListApp,
      Api.feedDislike,
      Api.feedDislikeCancel,
      Api.hotList,
      Api.relatedList,
      Api.hotSearchList, // 不同账号搜索结果可能不一样
      Api.searchDefault,
      Api.searchSuggest,
      Api.liveList,
      Api.searchTrending,
      Api.searchRecommend,
      Api.getRankApi,
      Api.pgcRank,
      Api.pgcSeasonRank,
      Api.pgcIndexResult,
      Api.popularSeriesOne,
      Api.popularSeriesList,
      Api.popularPrecious,
      Api.liveAreaList,
      Api.liveFeedIndex,
      Api.liveSecondList,
      Api.liveRoomAreaList,
      Api.liveSearch,
      Api.bgmRecommend,
      Api.dynTopicRcmd,
      Api.topicFeed,
      Api.topicTop,
    },
    // progress
    AccountType.video: {
      Api.ugcUrl,
      Api.pgcUrl,
      Api.pugvUrl,
      Api.tvPlayUrl,
      Api.videoshot,
    },
  };

  static const loginApi = {
    Api.getTVCode,
    Api.qrcodePoll,
    Api.getCaptcha,
    Api.getWebKey,
    Api.appSmsCode,
    Api.loginByPwdApi,
    Api.logInByAppSms,
    Api.safeCenterGetInfo,
    Api.preCapture,
    Api.safeCenterSmsCode,
    Api.safeCenterSmsVerify,
    Api.oauth2AccessToken,
  };
}
