import 'package:flutter/material.dart'; import '../models/team_model.dart'; import '../models/person_model.dart'; // --- CABEÇALHO --- class StatsHeader extends StatelessWidget { final Team team; const StatsHeader({super.key, required this.team}); @override Widget build(BuildContext context) { return Container( padding: const EdgeInsets.only(top: 50, left: 20, right: 20, bottom: 20), decoration: const BoxDecoration( color: Color(0xFF2C3E50), borderRadius: BorderRadius.only(bottomLeft: Radius.circular(30), bottomRight: Radius.circular(30)), ), child: Row( children: [ IconButton( icon: const Icon(Icons.arrow_back, color: Colors.white), onPressed: () => Navigator.pop(context), ), const SizedBox(width: 10), CircleAvatar( backgroundColor: Colors.white24, child: Text(team.imageUrl.isNotEmpty ? "📷" : "🛡️"), ), const SizedBox(width: 15), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(team.name, style: const TextStyle(color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold)), Text(team.season, style: const TextStyle(color: Colors.white70, fontSize: 14)), ], ), ], ), ); } } // --- CARD DE RESUMO --- class StatsSummaryCard extends StatelessWidget { final int total; const StatsSummaryCard({super.key, required this.total}); @override Widget build(BuildContext context) { return Card( elevation: 4, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), child: Container( padding: const EdgeInsets.all(20), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), gradient: LinearGradient(colors: [Colors.blue.shade700, Colors.blue.shade400]), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const Text("Total de Membros", style: TextStyle(color: Colors.white, fontSize: 16)), Text("$total", style: const TextStyle(color: Colors.white, fontSize: 28, fontWeight: FontWeight.bold)), ], ), ), ); } } // --- TÍTULO DE SECÇÃO --- class StatsSectionTitle extends StatelessWidget { final String title; const StatsSectionTitle({super.key, required this.title}); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(title, style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Color(0xFF2C3E50))), const Divider(), ], ); } } // --- CARD DA PESSOA (JOGADOR/TREINADOR) --- class PersonCard extends StatelessWidget { final Person person; final bool isCoach; final VoidCallback onEdit; final VoidCallback onDelete; const PersonCard({ super.key, required this.person, required this.isCoach, required this.onEdit, required this.onDelete, }); @override Widget build(BuildContext context) { return Card( margin: const EdgeInsets.only(top: 12), elevation: 2, color: isCoach ? const Color(0xFFFFF9C4) : Colors.white, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), child: ListTile( leading: isCoach ? const CircleAvatar(backgroundColor: Colors.orange, child: Icon(Icons.person, color: Colors.white)) : Container( width: 45, height: 45, alignment: Alignment.center, decoration: BoxDecoration(color: Colors.blue.withOpacity(0.1), borderRadius: BorderRadius.circular(10)), child: Text(person.number, style: const TextStyle(color: Colors.blue, fontWeight: FontWeight.bold, fontSize: 16)), ), title: Text(person.name, style: const TextStyle(fontWeight: FontWeight.bold)), trailing: Row( mainAxisSize: MainAxisSize.min, children: [ IconButton( icon: const Icon(Icons.edit_outlined, color: Colors.blue), onPressed: onEdit, ), IconButton( icon: const Icon(Icons.delete_outline, color: Colors.red), onPressed: onDelete, ), ], ), ), ); } }