import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../models/configuracion.dart'; import '../providers/configuracion_provider.dart'; class ConfiguracionScreen extends StatefulWidget { const ConfiguracionScreen({super.key}); @override State createState() => _ConfiguracionScreenState(); } class _ConfiguracionScreenState extends State { late List _diasSeleccionados; late String _moneda; final List> _opcionesDias = [ {'label': '7 días antes', 'value': 7}, {'label': '3 días antes', 'value': 3}, {'label': '1 día antes', 'value': 1}, {'label': 'Día de vencimiento', 'value': 0}, ]; final List _monedas = ['USD', 'EUR', 'MXN', 'COP', 'ARS', 'PEN', 'CLP', 'BRL']; @override void initState() { super.initState(); final config = context.read().config; final dias = config?.diasRecordatorio ?? '7,3,1,0'; final lista = dias.split(',').map((e) => int.tryParse(e.trim()) ?? 0).toList(); _diasSeleccionados = _opcionesDias.map((o) => lista.contains(o['value'])).toList(); _moneda = config?.moneda ?? 'USD'; } @override Widget build(BuildContext context) { final provider = context.read(); return Scaffold( appBar: AppBar(title: const Text('Configuración')), body: ListView( padding: const EdgeInsets.all(16), children: [ Text('Recordatorios', style: Theme.of(context).textTheme.titleMedium), const SizedBox(height: 8), ...List.generate(_opcionesDias.length, (i) { return CheckboxListTile( title: Text(_opcionesDias[i]['label'] as String), value: _diasSeleccionados[i], onChanged: (v) { setState(() => _diasSeleccionados[i] = v ?? false); }, ); }), const SizedBox(height: 20), Text('Moneda', style: Theme.of(context).textTheme.titleMedium), const SizedBox(height: 8), DropdownButtonFormField( value: _moneda, decoration: const InputDecoration(border: OutlineInputBorder()), items: _monedas.map((m) => DropdownMenuItem(value: m, child: Text(m))).toList(), onChanged: (v) => setState(() => _moneda = v!), ), const SizedBox(height: 32), FilledButton( onPressed: () async { final diasStr = _opcionesDias .asMap() .entries .where((e) => _diasSeleccionados[e.key]) .map((e) => e.value['value'].toString()) .join(','); final config = Configuracion( id: provider.config?.id, diasRecordatorio: diasStr.isEmpty ? '0' : diasStr, tema: provider.config?.tema ?? 'claro', moneda: _moneda, ); await provider.guardarConfiguracion(config); if (context.mounted) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Configuración guardada')), ); } }, child: const Text('Guardar configuración'), ), ], ), ); } }