part of 'session_bloc.dart'; enum SessionStatus { unknown, unauthenticated, authenticatedNoCompany, // Loggato ma deve creare l'azienda authenticatedNoStore, // Ha l'azienda ma deve creare/scegliere il primo negozio ready, } class SessionState extends Equatable { final SessionStatus status; final String? userId; final CompanyModel? company; final StoreModel? selectedStore; final List availableStores; // Utile per uno switcher in futuro const SessionState({ this.status = SessionStatus.unknown, this.userId, this.company, this.selectedStore, this.availableStores = const [], }); @override List get props => [ status, userId, company, selectedStore, availableStores, ]; // copyWith per aggiornare solo un pezzo (es. quando cambi negozio) SessionState copyWith({ SessionStatus? status, String? userId, CompanyModel? company, StoreModel? selectedStore, List? availableStores, }) { return SessionState( status: status ?? this.status, userId: userId ?? this.userId, company: company ?? this.company, selectedStore: selectedStore ?? this.selectedStore, availableStores: availableStores ?? this.availableStores, ); } }