import 'package:supabase_flutter/supabase_flutter.dart'; final supabaseClient = Supabase.instance.client; class RutasService { final SupabaseClient _client = supabaseClient; // ── Obtener ruta por ID ── Future?> obtenerRuta(String routeId) async { try { final response = await _client .from('rutas') .select('*') .eq('id', routeId) .single(); return response; } catch (e) { print('Error obtener_ruta: $e'); return null; } } // ── Obtener puntos de ruta ── Future>> obtenerPuntosRuta(String routeId) async { try { final response = await _client .from('puntos_ruta') .select('*') .eq('ruta_id', routeId) .order('orden'); return response; } catch (e) { print('Error obtener_puntos_ruta: $e'); return []; } } // ── Obtener truck status ── Future?> obtenerTruckStatus(String routeId) async { try { final response = await _client .from('truck_status') .select('*') .eq('route_id', routeId) .single(); return response; } catch (e) { print('Error obtener_truck_status: $e'); return null; } } // ── Obtener template de notificación ── Future?> obtenerTemplate(String triggerEvent) async { try { final response = await _client .from('notification_templates') .select('*') .eq('trigger_event', triggerEvent) .single(); return response; } catch (e) { print('Error obtener_template: $e'); return null; } } // ── Obtener preferencias de usuario ── Future?> obtenerPreferencias(String userId) async { try { final response = await _client .from('notification_preferences') .select('*') .eq('user_id', userId) .single(); return response; } catch (e) { print('Error obtener_preferencias: $e'); return null; } } // ── Obtener dirección de usuario ── Future?> obtenerDireccion(int addressId) async { try { final response = await _client .from('addresses') .select('*') .eq('id', addressId) .single(); return response; } catch (e) { print('Error obtener_direccion: $e'); return null; } } // ── Guardar notificación ── Future guardarNotificacion({ required String tipo, required String routeId, required int addressId, required String mensaje, int? etaMinutos, }) async { try { await _client.from('notificaciones').insert({ 'tipo': tipo, 'ruta_id': routeId, 'address_id': addressId, 'mensaje': mensaje, 'eta_minutos': etaMinutos, 'creada_en': DateTime.now().toIso8601String(), }); } catch (e) { print('Error guardar_notificacion: $e'); } } }