/// Events des CarsBloc nach der Backend-Migration.
///
/// Anders als zuvor brauchen die Events **keinen** `teamId`/
/// `personalnummer`-Parameter — der Server leitet den Account aus dem
/// JWT ab. Statt `CarDelete` gibt's nur noch `CarDeactivate` (Soft-
/// Delete via `active=false`).
sealed class CarEvents {
  const CarEvents();
}

class CarLoad extends CarEvents {
  /// Pull-to-Refresh setzt `force=true` und umgeht den Cache.
  final bool force;
  const CarLoad({this.force = false});
}

class CarAdd extends CarEvents {
  final String plate;
  const CarAdd({required this.plate});
}

/// PATCH: Kennzeichen ändern und/oder aktivieren-Status setzen.
class CarEdit extends CarEvents {
  final String carId;
  final String? plate;
  final bool? active;
  const CarEdit({required this.carId, this.plate, this.active});
}

/// Soft-Delete (setzt `active=false`). Hartes Löschen ist nicht
/// vorgesehen — Fahrzeuge bleiben als FK-Anker für Audit-Einträge.
class CarDeactivate extends CarEvents {
  final String carId;
  const CarDeactivate({required this.carId});
}
