import { Box, Divider, Text, Stack } from "@mantine/core";
import Header from "./header";
import SwipeableTabs from "@/components/swipeable-tabs";
import TournamentList from "@/features/tournaments/components/tournament-list";
import StatsOverview from "@/components/stats-overview";
import { useTeam, useTeamMatches, useTeamStats } from "../../queries";
import MatchList from "@/features/matches/components/match-list";
import PlayerList from "@/features/players/components/player-list";

interface ProfileProps {
  id: string;
}

const TeamProfile = ({ id }: ProfileProps) => {
  const { data: team } = useTeam(id);
  const { data: matches } = useTeamMatches(id);
  const { data: stats, isLoading: statsLoading, error: statsError } = useTeamStats(id);
  if (!team) return <Text p="md">Team not found</Text>;

  const tabs = [
    {
      label: "Overview",
      content: <>
        <Stack px="md">
          <Text size="md" fw={700}>Players</Text>
          <PlayerList players={team.players} />
        </Stack>
        <Divider my="md" />
        <Stack>
          <Text px="md" size="md" fw={700}>Statistics</Text>
          <StatsOverview statsData={statsError ? null : stats || null} isLoading={statsLoading} />
        </Stack>
      </>,
    },
    {
      label: "Matches",
      content: <MatchList matches={matches || []} />,
    },
    {
      label: "Tournaments",
      content: (
        <>
          <TournamentList tournaments={team.tournaments || []} />
        </>
      ),
    },
  ];
  return (
    <>
      <Header name={team.name} logo={team.logo} id={team.id} />
      <Box mt="lg">
        <SwipeableTabs tabs={tabs} />
      </Box>
    </>
  );
};

export default TeamProfile;
