This commit is contained in:
2026-05-30 12:12:14 +02:00
parent 9bace01b93
commit bd81173559
30 changed files with 1020 additions and 51 deletions

View File

@@ -1,3 +1,4 @@
import 'package:flutter/foundation.dart';
import 'package:flux/core/enums_and_consts/consts.dart';
import 'package:flux/features/master_data/staff/models/staff_member_model.dart';
import 'package:flux/features/master_data/store/models/store_model.dart';
@@ -10,19 +11,38 @@ class StaffRepository {
// --- ANAGRAFICA PURA ---
// Prende tutto lo staff della Company (per l'Hub Anagrafiche)
Future<List<StaffMemberModel>> getStaffMembers(String companyId) async {
final response = await _supabase
.from(Tables.staffMembers)
.select('''
*,
store_assignments:${Tables.staffInStores} (
${Tables.stores}(*)
)
''')
.eq('company_id', companyId)
.order('name', ascending: true);
Future<List<StaffMemberModel>> getStaffMembers(
String companyId, {
String? storeId,
}) async {
try {
var filterBuilder = _supabase
.from(Tables.staffMembers)
.select('''
*,
store_assignments:${Tables.staffInStores} (
${Tables.stores}(*)
)
''')
.eq('company_id', companyId);
return (response as List).map((s) => StaffMemberModel.fromMap(s)).toList();
if (storeId != null) {
filterBuilder = filterBuilder.or(
'store_id.eq.$storeId,store_id.is.null',
);
}
var transformBuilder = filterBuilder.order('name', ascending: true);
final response = await transformBuilder;
return (response as List)
.map((s) => StaffMemberModel.fromMap(s))
.toList();
} on Exception catch (e) {
debugPrint('Errore nel recupero della lista di staff: $e');
throw Exception('Errore nel recupero della lista di staff: $e');
}
}
Future<StaffMemberModel?> getStaffMemberById(String staffId) async {