import { connectMongo } from "@/lib/mongo";
import { TeamMember } from "@/models/TeamMember";
import TeamMemberCard, {
  type TeamMemberView,
} from "@/components/team/TeamMemberCard";

export const dynamic = "force-dynamic";

async function getTeam(): Promise<TeamMemberView[]> {
  try {
    await connectMongo();
    const docs = await TeamMember.find()
      .sort({ order: 1, createdAt: 1 })
      .lean();
    return docs.map((d) => ({
      _id: String(d._id),
      name: d.name,
      displayName: d.displayName ?? "",
      role: d.role,
      expertise: d.expertise ?? [],
      bio: d.bio ?? "",
      discordTag: d.discordTag ?? "",
      avatarFileId: d.avatarFileId ? String(d.avatarFileId) : null,
      socials: d.socials ?? {},
    }));
  } catch (err) {
    console.error("[takim] DB error:", err);
    return [];
  }
}

export default async function TakimimizPage() {
  const team = await getTeam();

  return (
    <div className="max-w-7xl mx-auto px-6 lg:px-10 pt-12 lg:pt-20 pb-16">
      <header className="text-center mb-12 lg:mb-16">
        <h1 className="text-4xl sm:text-5xl lg:text-6xl font-extrabold heading-gradient">
          Takımımız
        </h1>
        <p className="mt-4 text-base sm:text-lg text-brand-300 max-w-2xl mx-auto">
          Source Setups’u oluşturan profesyonel ekibimizle tanışın. Her birimiz
          alanında uzman, hizmetinize hazır.
        </p>
      </header>

      {team.length === 0 ? (
        <div className="glass rounded-2xl p-12 text-center">
          <p className="text-brand-300">
            Henüz takım üyesi eklenmemiş. Yönetici panelinden ekleyebilirsiniz.
          </p>
        </div>
      ) : (
        <div className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
          {team.map((member) => (
            <TeamMemberCard key={member._id} member={member} />
          ))}
        </div>
      )}
    </div>
  );
}
