import 'package:flutter/material.dart'; import 'package:turquessa_mesas_hoster/core/services/database_service.dart'; import '../../core/models/pedido_model.dart'; import '../../core/services/api_response.dart'; import '../../core/services/base_service.dart'; class PedidoViewModel extends ChangeNotifier { List _pedidos = []; bool _isLoading = false; List get pedidos => _pedidos; bool get isLoading => _isLoading; Future fetchLocalPedidos() async { var db = await DatabaseService().db; var query = await db! .query('Pedido', where: 'eliminado IS NULL', orderBy: 'id asc'); _pedidos = query.map((element) => Pedido.fromJson(element)).toList(); notifyListeners(); } // Future setSelectedPedido(Pedido pedido) async { // var db = await DatabaseService().db; // await db!.update( // 'Pedido', // {'seleccionado': 0}, // ); // pedido.seleccionado = 1; // await DatabaseService().guardar(pedido); // await fetchLocalPedidos(); // } Future sincronizarPedidos() async { try { final response = ApiResponse(await BaseService().get('/pos/mesa?expand=pedidos')); if (response.isOk && response.resultados != null) { List pedidosApi = response.resultados!.map((json) => Pedido.fromJson(json)).toList(); // if (pedidosApi.isNotEmpty) { // await DatabaseService().sincronizarPedidos(pedidosApi); // await fetchLocalPedidos(); // notifyListeners(); // return true; // } } return false; } catch (e) { print('Error al sincronizar pedidos: $e'); return false; } } // // Future sincronizarPedidosDesdeApi() async { // setIsLoading(true); // try { // final response = ApiResponse(await BaseService().get('/pos/pedido')); // if (response.isOk && response.resultados != null) { // List pedidosApi = // response.resultados!.map((json) => Pedido.fromApi(json)).toList(); // if (pedidosApi.isNotEmpty) { // await DatabaseService().sincronizarPedidos(pedidosApi); // await fetchLocalPedidos(); // notifyListeners(); // } // } // } catch (e) { // print('Error al sincronizar pedidos: $e'); // } finally { // setIsLoading(false); // } // } void setIsLoading(bool value) { _isLoading = value; notifyListeners(); } }