import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../viewmodels/viewmodels.dart';
import '../../models/models.dart';
import '../../widgets/widgets.dart';

class SucursalesPage extends StatefulWidget {
  @override
  _SucursalesPageState createState() => _SucursalesPageState();
}

class _SucursalesPageState extends State<SucursalesPage> {
  Sucursal? _selectedSucursal;

  @override
  void initState() {
    super.initState();
    // Cargar las sucursales desde la base de datos local cuando se inicializa la pantalla
    Provider.of<SucursalViewModel>(context, listen: false)
        .fetchLocalSucursales();
  }

  @override
  Widget build(BuildContext context) {
    final sucursalViewModel = Provider.of<SucursalViewModel>(context);
    final sucursales = sucursalViewModel.sucursales;

    return Scaffold(
      appBar: AppBar(
        title: Text('Sucursales'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            // Dropdown para seleccionar una sucursal
            DropdownButton<Sucursal>(
              hint: Text('Seleccione una sucursal'),
              value: _selectedSucursal,
              isExpanded: true,
              onChanged: (Sucursal? newValue) {
                setState(() {
                  _selectedSucursal = newValue;
                });
              },
              items: sucursales.map((Sucursal sucursal) {
                return DropdownMenuItem<Sucursal>(
                  value: sucursal,
                  child: Text(sucursal.nombre ?? ''),
                );
              }).toList(),
            ),
            SizedBox(height: 20),
            boton("Guardar", () async {
              _guardarSucursalSeleccionada();
              if (context.mounted) {
                Navigator.pop(context);
              }
            })
          ],
        ),
      ),
    );
  }

  void _guardarSucursalSeleccionada() {
    if (_selectedSucursal != null) {
      // Aquí puedes implementar la lógica para guardar la sucursal seleccionada
      print('Sucursal seleccionada: ${_selectedSucursal?.nombre}');
      // Puedes guardar la sucursal seleccionada en el estado o base de datos local
      // Ejemplo: Provider.of<SucursalViewModel>(context, listen: false).guardarSucursalSeleccionada(_selectedSucursal);
    }
  }
}
