import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:flutter_application_1/features/auth/data/models/mock_waste_data.dart'; class RegisterScreen extends StatefulWidget { const RegisterScreen({super.key}); @override State createState() => _RegisterScreenState(); } class _RegisterScreenState extends State { final _formKey = GlobalKey(); String _selectedColonia = 'Centro'; final _nameController = TextEditingController(); final _emailController = TextEditingController(); final _passwordController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Crear Cuenta Ciudadana')), body: SingleChildScrollView( padding: const EdgeInsets.all(24.0), child: Form( key: _formKey, child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ const Icon(Icons.assignment_ind_outlined, size: 80, color: Colors.green), const SizedBox(height: 16), Text( 'Regístrate para recibir avisos de recolección en tu zona', textAlign: TextAlign.center, style: Theme.of(context).textTheme.bodyLarge, ), const SizedBox(height: 24), TextFormField( controller: _nameController, decoration: const InputDecoration(labelText: 'Nombre Completo', border: OutlineInputBorder()), validator: (v) => v!.isEmpty ? 'Ingresa tu nombre' : null, ), const SizedBox(height: 16), TextFormField( controller: _emailController, decoration: const InputDecoration(labelText: 'Correo o Teléfono', border: OutlineInputBorder()), validator: (v) => v!.isEmpty ? 'Ingresa tus datos' : null, ), const SizedBox(height: 16), TextFormField( controller: _passwordController, obscureText: true, decoration: const InputDecoration(labelText: 'Contraseña', border: OutlineInputBorder()), validator: (v) => v!.length < 6 ? 'Mínimo 6 caracteres' : null, ), const SizedBox(height: 16), // Dropdown para seleccionar la Colonia (Requisito MVP) DropdownButtonFormField( value: _selectedColonia, decoration: const InputDecoration(labelText: 'Selecciona tu Colonia / Domicilio', border: OutlineInputBorder()), items: MockWasteData.schedules.map((zone) { return DropdownMenuItem(value: zone.colonia, child: Text(zone.colonia)); }).toList(), onChanged: (val) => setState(() => _selectedColonia = val!), ), const SizedBox(height: 24), // Mensajería Preventiva Legal Card( color: Colors.amber.shade50, child: Padding( padding: const EdgeInsets.all(12.0), child: Text( '🔒 Privacidad Garantizada:\nAl registrar tu domicilio, tu cuenta operará bajo el principio de "Visión de Túnel". Solo verás alertas de tu sector. Está prohibido el rastreo de flotillas.', style: TextStyle(color: Colors.amber.shade900, fontSize: 13, fontWeight: FontWeight.bold), ), ), ), const SizedBox(height: 24), ElevatedButton( style: ElevatedButton.styleFrom(padding: const EdgeInsets.symmetric(vertical: 16), backgroundColor: Colors.green), onPressed: () { if (_formKey.currentState!.validate()) { // Simulación de Registro Exitoso: Navega al Home enviando la colonia elegida ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Cuenta creada con éxito (Modo Simulación)')), ); context.go('/home?colonia=$_selectedColonia'); } }, child: const Text('Registrarse', style: TextStyle(color: Colors.white, fontSize: 16)), ), ], ), ), ), ); } }