"use server"; import { revalidatePath } from "next/cache"; import { createClient } from "@/lib/supabase/server"; import * as leagues from "@/lib/services/leagues"; import * as teams from "@/lib/services/teams"; export async function createLeague(formData: FormData) { const supabase = await createClient(); const { data: { user }, } = await supabase.auth.getUser(); if (!user) throw new Error("Unauthorized"); const league = await leagues.createLeague(supabase, user.id, { name: formData.get("name") as string, description: (formData.get("description") as string) || undefined, }); revalidatePath("/leagues"); return league; } export async function createCompetition(leagueId: string, formData: FormData) { const supabase = await createClient(); const { data: { user }, } = await supabase.auth.getUser(); if (!user) throw new Error("Unauthorized"); const data = await leagues.createCompetition(supabase, user.id, leagueId, { name: formData.get("name") as string, tournament_mode: formData.get("tournament_mode") as "league" | "cup", timezone: (formData.get("timezone") as string) || "UTC", }); revalidatePath(`/leagues/${leagueId}`); return data; } export async function activateCompetition(competitionId: string) { const supabase = await createClient(); await leagues.activateCompetition(supabase, competitionId); revalidatePath("/leagues"); } export async function generateFixtures(competitionId: string, mode: string) { const supabase = await createClient(); await leagues.generateFixtures( supabase, competitionId, mode as "league" | "cup" ); revalidatePath("/leagues"); } export async function createTeam(competitionId: string, formData: FormData) { const supabase = await createClient(); const data = await teams.createTeam(supabase, competitionId, { name: formData.get("name") as string, nickname: (formData.get("nickname") as string) || undefined, icon: (formData.get("icon") as string) || undefined, }); revalidatePath("/leagues"); return data; } export async function saveLeagueRules(leagueId: string, rules: object) { const supabase = await createClient(); const { data: { user }, } = await supabase.auth.getUser(); if (!user) throw new Error("Unauthorized"); await leagues.saveLeagueRules(supabase, user.id, leagueId, rules); revalidatePath(`/leagues/${leagueId}/rules`); }