import 'package:hl_lieferservice/feature/delivery/model/delivery_phase.dart'; abstract class PhaseEvent {} /// Lädt (falls noch nicht geschehen) die persistierte Phase für ein Fahrzeug /// und emittiert sie. Falls nichts persistiert ist, ermittelt der /// [PhaseBloc] die Eintrittsphase abhängig von der Anzahl der Team- /// Fahrzeuge: /// * 1 Auto → [DeliveryPhase.sortieren] /// * ≥2 Autos → [DeliveryPhase.auswaehlen] class PhaseLoadForCar extends PhaseEvent { final String carId; PhaseLoadForCar({required this.carId}); } /// Explizites Setzen einer Phase für ein Fahrzeug — wird sowohl beim /// Sprung über den Stepper als auch nach automatischem Phasen-Wechsel /// (z. B. Sortierung bestätigt → beladen) aufgerufen. Persistiert. class PhaseSet extends PhaseEvent { final String carId; final DeliveryPhase phase; PhaseSet({required this.carId, required this.phase}); } /// Setzt die Phase für ein Fahrzeug, ohne sie zu persistieren. Wird intern /// nach einem Load verwendet, da die Quelle bereits SharedPreferences ist. /// [maxPhase] ist die höchste am Tag erreichte Phase aus der Persistenz — /// fällt sie weg, wird die aktuelle [phase] als Max angenommen. class PhaseLoaded extends PhaseEvent { final String carId; final DeliveryPhase phase; final DeliveryPhase maxPhase; PhaseLoaded({ required this.carId, required this.phase, required this.maxPhase, }); }