import 'package:get_it/get_it.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; import '../models/customer_model.dart'; class CustomerRepository { final SupabaseClient _client = GetIt.I(); // Crea un nuovo cliente Future createCustomer(CustomerModel customer) async { try { final response = await _client .from('customer') .insert(customer.toJson()) .select() .single(); return CustomerModel.fromJson(response); } catch (e) { throw 'Errore durante la creazione del cliente: $e'; } } // Recupera tutti i clienti dell'azienda Future> getCustomers(String companyId) async { try { final response = await _client .from('customer') .select() .eq('company_id', companyId) .eq('is_active', true) .order('nome'); return (response as List).map((c) => CustomerModel.fromJson(c)).toList(); } catch (e) { throw 'Errore nel recupero clienti'; } } // Ricerca clienti per nome o telefono (fondamentale per la UX) Future> searchCustomers( String companyId, String query, ) async { try { final response = await _client .from('customer') .select() .eq('company_id', companyId) .or('nome.ilike.%$query%,telefono.ilike.%$query%') .limit(10); return (response as List).map((c) => CustomerModel.fromJson(c)).toList(); } catch (e) { return []; } } }