import 'dart:async'; class TeamController { // --- BASE DE DADOS LOCAL (Listas Estáticas) --- static final List> _teams = []; // Lista de jogadores (necessária para a contagem funcionar) static final List> _members = []; // Getter para partilhar com outros controllers static List> get members => _members; final _streamController = StreamController>>.broadcast(); // 1. STREAM Stream>> get teamsStream { Future.microtask(() => _streamController.add(_teams)); return _streamController.stream; } // 2. CRIAR Future createTeam(String name, String season, String imageUrl) async { await Future.delayed(const Duration(milliseconds: 100)); final newTeam = { 'id': DateTime.now().millisecondsSinceEpoch.toString(), 'name': name, 'season': season, 'image_url': imageUrl, }; _teams.add(newTeam); _notifyListeners(); } // 3. ELIMINAR Future deleteTeam(String id) async { _teams.removeWhere((team) => team['id'] == id); // Remove também os jogadores dessa equipa para não ficarem "órfãos" _members.removeWhere((member) => member['team_id'] == id); _notifyListeners(); } // 4. CONTAR JOGADORES (Lógica Local) Future getPlayerCount(String teamId) async { // Filtra a lista _members e conta quantos pertencem a esta equipa final count = _members.where((m) => m['team_id'] == teamId).length; return count; } void _notifyListeners() { _streamController.add(_teams); } void dispose() { _streamController.close(); } }