import 'package:shared_preferences/shared_preferences.dart'; import '../global_data.dart'; class ProfiloService { static const String _prefix = "my_profile_"; /// Salva tutti i dati del lato specificato (A o B) nelle SharedPreferences. static Future salvaProfilo(String lato) async { final prefs = await SharedPreferences.getInstance(); bool isA = lato == 'A'; // Sezione 6-7 Contraente e Veicolo await prefs.setString('${_prefix}nome_contraente', isA ? GlobalData.nomeContraenteA : GlobalData.nomeContraenteB); await prefs.setString('${_prefix}cognome_contraente', isA ? GlobalData.cognomeContraenteA : GlobalData.cognomeContraenteB); await prefs.setString('${_prefix}cf_contraente', isA ? GlobalData.codiceFiscaleContraenteA : GlobalData.codiceFiscaleContraenteB); await prefs.setString('${_prefix}indirizzo_contraente', isA ? GlobalData.indirizzoContraenteA : GlobalData.indirizzoContraenteB); await prefs.setString('${_prefix}cap_contraente', isA ? GlobalData.capContraenteA : GlobalData.capContraenteB); await prefs.setString('${_prefix}stato_contraente', isA ? GlobalData.statoContraenteA : GlobalData.statoContraenteB); await prefs.setString('user_tel', lato == 'A' ? GlobalData.nTelefonoMailContraenteA : GlobalData.nTelefonoMailContraenteB); await prefs.setString('user_email', lato == 'A' ? GlobalData.emailContraenteA : GlobalData.emailContraenteB); await prefs.setString('${_prefix}marca_tipo', isA ? GlobalData.marcaETipoA : GlobalData.marcaETipoB); await prefs.setString('${_prefix}targa', isA ? GlobalData.targaA : GlobalData.targaB); await prefs.setString('${_prefix}stato_imm', isA ? GlobalData.statoImmatricolazioneA : GlobalData.statoImmatricolazioneB); // Sezione 8 Assicurazione await prefs.setString('${_prefix}denominazione_ass', isA ? GlobalData.denominazioneA : GlobalData.denominazioneB); await prefs.setString('${_prefix}polizza_ass', isA ? GlobalData.numeroPolizzaA : GlobalData.numeroPolizzaB); await prefs.setString('${_prefix}agenzia_ass', isA ? GlobalData.agenziaA : GlobalData.agenziaB); // Sezione 9 Conducente await prefs.setString('${_prefix}nome_cond', isA ? GlobalData.nomeCondA : GlobalData.nomeCondB); await prefs.setString('${_prefix}cognome_cond', isA ? GlobalData.cognomeCondA : GlobalData.cognomeCondB); await prefs.setString('${_prefix}data_nascita_cond', isA ? GlobalData.dataNascitaCondA : GlobalData.dataNascitaCondB); await prefs.setString('${_prefix}cf_cond', isA ? GlobalData.codFiscaleCondA : GlobalData.codFiscaleCondB); await prefs.setString('${_prefix}indirizzo_cond', isA ? GlobalData.indirizzoCondA : GlobalData.indirizzoCondB); await prefs.setString('user_cond_tel', lato == 'A' ? GlobalData.nTelMailCondA : GlobalData.nTelMailCondB); await prefs.setString('user_cond_email', lato == 'A' ? GlobalData.emailCondA : GlobalData.emailCondB); await prefs.setString('${_prefix}patente_cond', isA ? GlobalData.nPatenteCondA : GlobalData.nPatenteCondB); await prefs.setString('${_prefix}scadenza_cond', isA ? GlobalData.scadenzaCondA : GlobalData.scadenzaCondB); } /// Verifica se esiste un profilo salvato (almeno un cognome contraente o una targa). static Future esisteProfilo() async { final prefs = await SharedPreferences.getInstance(); String? cognome = prefs.getString('${_prefix}cognome_contraente'); return cognome != null && cognome.trim().isNotEmpty; } /// Carica il profilo dalle SharedPreferences in GlobalData per il lato specificato. static Future caricaProfilo(String lato) async { final prefs = await SharedPreferences.getInstance(); bool isA = lato == 'A'; String getStr(String key) => prefs.getString('$_prefix$key') ?? ""; if (isA) { GlobalData.nomeContraenteA = getStr('nome_contraente'); GlobalData.cognomeContraenteA = getStr('cognome_contraente'); GlobalData.codiceFiscaleContraenteA = getStr('cf_contraente'); GlobalData.indirizzoContraenteA = getStr('indirizzo_contraente'); GlobalData.capContraenteA = getStr('cap_contraente'); GlobalData.statoContraenteA = getStr('stato_contraente'); GlobalData.nTelefonoMailContraenteA = prefs.getString('user_tel') ?? ""; GlobalData.emailContraenteA = prefs.getString('user_email') ?? ""; GlobalData.marcaETipoA = getStr('marca_tipo'); GlobalData.targaA = getStr('targa'); GlobalData.statoImmatricolazioneA = getStr('stato_imm'); GlobalData.denominazioneA = getStr('denominazione_ass'); GlobalData.numeroPolizzaA = getStr('polizza_ass'); GlobalData.agenziaA = getStr('agenzia_ass'); GlobalData.nomeCondA = getStr('nome_cond'); GlobalData.cognomeCondA = getStr('cognome_cond'); GlobalData.dataNascitaCondA = getStr('data_nascita_cond'); GlobalData.codFiscaleCondA = getStr('cf_cond'); GlobalData.indirizzoCondA = getStr('indirizzo_cond'); GlobalData.nTelMailCondA = prefs.getString('user_cond_tel') ?? ""; GlobalData.emailCondA = prefs.getString('user_cond_email') ?? ""; GlobalData.nPatenteCondA = getStr('patente_cond'); GlobalData.scadenzaCondA = getStr('scadenza_cond'); } else { GlobalData.nomeContraenteB = getStr('nome_contraente'); GlobalData.cognomeContraenteB = getStr('cognome_contraente'); GlobalData.codiceFiscaleContraenteB = getStr('cf_contraente'); GlobalData.indirizzoContraenteB = getStr('indirizzo_contraente'); GlobalData.capContraenteB = getStr('cap_contraente'); GlobalData.statoContraenteB = getStr('stato_contraente'); GlobalData.nTelefonoMailContraenteB = prefs.getString('user_tel') ?? ""; GlobalData.emailContraenteB = prefs.getString('user_email') ?? ""; GlobalData.marcaETipoB = getStr('marca_tipo'); GlobalData.targaB = getStr('targa'); GlobalData.statoImmatricolazioneB = getStr('stato_imm'); GlobalData.denominazioneB = getStr('denominazione_ass'); GlobalData.numeroPolizzaB = getStr('polizza_ass'); GlobalData.agenziaB = getStr('agenzia_ass'); GlobalData.nomeCondB = getStr('nome_cond'); GlobalData.cognomeCondB = getStr('cognome_cond'); GlobalData.dataNascitaCondB = getStr('data_nascita_cond'); GlobalData.codFiscaleCondB = getStr('cf_cond'); GlobalData.indirizzoCondB = getStr('indirizzo_cond'); GlobalData.nTelMailCondB = prefs.getString('user_cond_tel') ?? ""; GlobalData.emailCondB = prefs.getString('user_cond_email') ?? ""; GlobalData.nPatenteCondB = getStr('patente_cond'); GlobalData.scadenzaCondB = getStr('scadenza_cond'); } } }