From f86b52e23624f9a85ae910a834f03751fb6a09b9 Mon Sep 17 00:00:00 2001 From: Mark M2 Macbook Date: Tue, 28 Apr 2026 11:05:03 +0200 Subject: [PATCH] fix --- android/app/src/main/AndroidManifest.xml | 10 +++++----- lib/core/blocs/session/session_cubit.dart | 13 +++++++++++-- lib/core/data/core_repository.dart | 15 +++++++++++++++ 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 0fd43e2..b24b47c 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -25,11 +25,11 @@ - - - - - + + + + + diff --git a/lib/core/blocs/session/session_cubit.dart b/lib/core/blocs/session/session_cubit.dart index 3de0491..1dafd01 100644 --- a/lib/core/blocs/session/session_cubit.dart +++ b/lib/core/blocs/session/session_cubit.dart @@ -39,8 +39,18 @@ class SessionCubit extends Cubit { } try { + // 1. CHI È QUESTO UTENTE? (Vediamo se ha un profilo staff, che sia Invitato o Admin) + final staff = await _repository.getStaffMemberByUserId(user.id); // 1. Controllo Azienda - final company = await _repository.getCompanyByOwnerId(user.id); + CompanyModel? company; + if (staff != null) { + // L'utente esiste già nel sistema! Carichiamo l'azienda per cui lavora + company = await _repository.getCompanyById(staff.companyId); + } else { + // L'utente non ha profilo. Probabilmente è l'Admin che ha appena + // fatto Sign Up e sta iniziando l'Onboarding + company = await _repository.getCompanyByOwnerId(user.id); + } if (company == null) { return emit( state.copyWith( @@ -69,7 +79,6 @@ class SessionCubit extends Cubit { } // 3. Controllo Staff (Paziente Zero) - final staff = await _repository.getStaffMemberByUserId(user.id); if (staff == null) { return emit( state.copyWith( diff --git a/lib/core/data/core_repository.dart b/lib/core/data/core_repository.dart index 269bc05..4b6d148 100644 --- a/lib/core/data/core_repository.dart +++ b/lib/core/data/core_repository.dart @@ -28,6 +28,21 @@ class CoreRepository { } } + Future getCompanyById(String companyId) async { + try { + final response = await _supabase + .from('company') + .select() + .eq('id', companyId) + .maybeSingle(); + if (response == null) return null; + return CompanyModel.fromMap(response); + } catch (e) { + debugPrint('Errore recupero azienda per ID: $e'); + return null; + } + } + Future> getStoresByCompanyId(String companyId) async { try { final response = await _supabase