feat-invite_staff #9

Merged
brontomark merged 5 commits from feat-invite_staff into main 2026-04-28 15:34:33 +02:00
3 changed files with 31 additions and 7 deletions
Showing only changes of commit f86b52e236 - Show all commits

View File

@@ -25,11 +25,11 @@
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
<intent-filter android:label="flux_deep_link"> <intent-filter android:label="flux_deep_link">
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="fluxapp" /> <data android:scheme="fluxapp" />
</intent-filter> </intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->

View File

@@ -39,8 +39,18 @@ class SessionCubit extends Cubit<SessionState> {
} }
try { 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 // 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) { if (company == null) {
return emit( return emit(
state.copyWith( state.copyWith(
@@ -69,7 +79,6 @@ class SessionCubit extends Cubit<SessionState> {
} }
// 3. Controllo Staff (Paziente Zero) // 3. Controllo Staff (Paziente Zero)
final staff = await _repository.getStaffMemberByUserId(user.id);
if (staff == null) { if (staff == null) {
return emit( return emit(
state.copyWith( state.copyWith(

View File

@@ -28,6 +28,21 @@ class CoreRepository {
} }
} }
Future<CompanyModel?> 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<List<StoreModel>> getStoresByCompanyId(String companyId) async { Future<List<StoreModel>> getStoresByCompanyId(String companyId) async {
try { try {
final response = await _supabase final response = await _supabase