import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flux/core/blocs/session/session_cubit.dart'; import 'package:flux/features/master_data/store/bloc/store_cubit.dart'; import 'package:flux/features/services/blocs/services_cubit.dart'; import 'package:flux/features/services/models/service_model.dart'; import 'package:go_router/go_router.dart'; /// Avvia la creazione di un nuovo servizio partendo dalla selezione dell'operatore. void startNewService(BuildContext context) { final session = context.read().state; final currentStoreId = session.currentStore?.id; if (currentStoreId == null) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text("Seleziona uno store prima di iniziare")), ); return; } showModalBottomSheet( context: context, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.vertical(top: Radius.circular(20)), ), builder: (modalContext) { // Usiamo lo StoreCubit invece dello StaffCubit! return BlocBuilder( builder: (context, storeState) { // Recuperiamo lo staff assegnato a questo specifico store usando la mappa che avevi giĆ  creato final storeStaff = storeState.staffByStore[currentStoreId] ?? []; return Container( padding: const EdgeInsets.all(24), child: Column( mainAxisSize: MainAxisSize.min, children: [ const Text( "Chi sta eseguendo l'operazione?", style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), const SizedBox(height: 20), if (storeStaff.isEmpty) const Text( "Nessun membro dello staff configurato per questo store.\nVai in Anagrafica > Negozi per assegnare il personale.", textAlign: TextAlign.center, ), ...storeStaff.map( (member) => ListTile( leading: const CircleAvatar(child: Icon(Icons.person)), title: Text(member.name), onTap: () { // 1. Inizializza il form nel Cubit context.read().initServiceForm( existingService: ServiceModel( storeId: currentStoreId, employeeId: member.id, number: '', createdAt: DateTime.now(), companyId: session.company!.id!, ), ); // 2. Chiudi la modal Navigator.pop(modalContext); // 3. Naviga verso il form context.pushNamed('service-form'); }, ), ), const SizedBox(height: 16), ], ), ); }, ); }, ); }