import 'package:supabase_flutter/supabase_flutter.dart'; class TeamController { // Instância do cliente Supabase final _supabase = Supabase.instance.client; // 1. STREAM (Realtime) Stream>> get teamsStream { return _supabase .from('teams') .stream(primaryKey: ['id']) .order('name', ascending: true) .map((data) => List>.from(data)); } // 2. CRIAR Future createTeam(String name, String season, String? imageUrl) async { try { await _supabase.from('teams').insert({ 'name': name, 'season': season, 'image_url': imageUrl, 'is_favorite': false, }); print("✅ Equipa guardada no Supabase!"); } catch (e) { print("❌ Erro ao criar: $e"); } } // 3. ELIMINAR Future deleteTeam(String id) async { try { await _supabase.from('teams').delete().eq('id', id); } catch (e) { print("❌ Erro ao eliminar: $e"); } } // 4. FAVORITAR Future toggleFavorite(String teamId, bool currentStatus) async { try { await _supabase .from('teams') .update({'is_favorite': !currentStatus}) // Inverte o valor .eq('id', teamId); } catch (e) { print("❌ Erro ao favoritar: $e"); } } // 5. CONTAR JOGADORES (AGORA EM TEMPO REAL COM STREAM!) Stream getPlayerCountStream(String teamId) { return _supabase .from('members') .stream(primaryKey: ['id']) .eq('team_id', teamId) .map((data) => data.length); // O tamanho da lista é o número de jogadores } void dispose() {} }