// =========================================================
// Barrel Export — All API services, hooks, types & query keys
// =========================================================

// ── Matches ──────────────────────────────────────────────
export { matchesService } from "@/lib/api/matches/service";
export {
  useListMatches,
  useMatchDetails,
  useQueryMatches,
  useActiveLeagues,
  MatchesQueryKeys,
} from "@/lib/api/matches/use-hooks";
export type {
  SportType,
  MatchStatus,
  MatchQueryDto,
  MatchListParams,
  MatchResponseDto,
  ActiveLeagueDto,
  LeagueWithMatchesDto,
} from "@/lib/api/matches/types";

// ── Predictions ──────────────────────────────────────────
export { predictionsService } from "@/lib/api/predictions/service";
export {
  usePrediction,
  useUpcomingPredictions,
  useValueBets,
  usePredictionHistory,
  useAIHealth,
  useGenerateSmartCoupon,
  PredictionsQueryKeys,
} from "@/lib/api/predictions/use-hooks";
export type {
  MatchPredictionDto,
  ValueBetDto,
  UpcomingPredictionsDto,
  PredictionHistoryResponseDto,
  AIHealthDto,
  SmartCouponRequestDto,
  CouponStrategy,
  MatchPickDto,
  MatchBetSummaryItemDto,
  MatchBetAdviceDto,
  ScorePredictionDto,
  RiskDto,
  DataQualityDto,
  EngineBreakdownDto,
  BetGrade,
} from "@/lib/api/predictions/types";

// ── Coupons ──────────────────────────────────────────────
export { couponsService } from "@/lib/api/coupons/service";
export {
  useAnalyzeMatch,
  useCreateCoupon,
  useDailyBanko,
  useCouponHistory,
  useUserBettingStats,
  useSuggestCoupon,
  CouponsQueryKeys,
} from "@/lib/api/coupons/use-hooks";
export type {
  CreateCouponDto,
  CouponItemDto,
  SuggestCouponDto,
  CouponResponseDto,
  UserBettingStatsDto,
} from "@/lib/api/coupons/types";

// ── Leagues ──────────────────────────────────────────────
export { leaguesService } from "@/lib/api/leagues/service";
export {
  useLeagues,
  useLeagueById,
  useCountries,
  useCountryById,
  useTeamById,
  useTeamMatches,
  useHeadToHead,
  useSearchTeams,
  LeaguesQueryKeys,
} from "@/lib/api/leagues/use-hooks";
export type {
  LeagueDto,
  CountryDto,
  TeamDto,
  HeadToHeadDto,
  TeamSearchParams,
  HeadToHeadParams,
} from "@/lib/api/leagues/types";

// ── Analysis ─────────────────────────────────────────────
export { analysisService } from "@/lib/api/analysis/service";
export {
  useAnalyzeMatches,
  useAnalysisHistory,
  AnalysisQueryKeys,
} from "@/lib/api/analysis/use-hooks";
export type {
  AnalyzeMatchesDto,
  AnalysisResultDto,
} from "@/lib/api/analysis/types";

// ── Admin ────────────────────────────────────────────────
export { adminService } from "@/lib/api/admin/service";
export {
  useAdminAnalytics,
  useAdminSettings,
  useUpdateSetting,
  useAdminUsageLimits,
  useResetAllUsageLimits,
  useAdminUsers,
  useAdminUserById,
  useDeleteUser,
  useUpdateUserRole,
  useUpdateUserSubscription,
  useToggleUserActive,
  AdminQueryKeys,
} from "@/lib/api/admin/use-hooks";
export type {
  AdminUserDto,
  SettingDto,
  UsageLimitDto,
  AnalyticsOverviewDto,
  AdminPaginationParams,
} from "@/lib/api/admin/types";

// ── Spor Toto ────────────────────────────────────────────
export { sporTotoService } from "@/lib/api/spor-toto/service";
export {
  useBulletins,
  useBulletinById,
  useBulletinStats,
  useRolloverHistory,
  useSyncBulletin,
  useGenerateColumns,
  useEvaluateColumns,
  useGeneratePrediction,
  SporTotoQueryKeys,
} from "@/lib/api/spor-toto/use-hooks";

// ── Users ────────────────────────────────────────────────
export { usersService } from "@/lib/api/users/service";
export {
  useUpdateProfile,
  useChangePassword,
  UsersQueryKeys,
} from "@/lib/api/users/use-hooks";
