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