/// Fahrzeug eines Subunternehmer-Accounts — Domain-Entity. /// /// Im Gegensatz zum alten `lib/model/car.dart` (int-ID, /// ERPframe-Welt) hält die neue Entity: /// * `id` als UUID-String (Backend-Konvention), /// * `accountId` als Personalnummer (für Audit/Cross-Check, ist /// redundant zur JWT-Identität aber explizit im Payload), /// * `active`-Flag (Soft-Delete statt physisches Löschen). class Car { const Car({ required this.id, required this.accountId, required this.plate, required this.active, }); /// UUID des Fahrzeugs. final String id; /// Personalnummer des Account-Inhabers. final int accountId; /// Kennzeichen (z. B. "BGL-HZ 100"). final String plate; /// Inaktive Fahrzeuge tauchen in `GET /me/cars` standardmäßig /// nicht auf — sie bleiben aber als FK-Anker für historische /// Audit-Einträge in der Datenbank. final bool active; Car copyWith({String? id, int? accountId, String? plate, bool? active}) { return Car( id: id ?? this.id, accountId: accountId ?? this.accountId, plate: plate ?? this.plate, active: active ?? this.active, ); } @override bool operator ==(Object other) => identical(this, other) || other is Car && runtimeType == other.runtimeType && id == other.id && accountId == other.accountId && plate == other.plate && active == other.active; @override int get hashCode => Object.hash(id, accountId, plate, active); @override String toString() => 'Car(id: $id, accountId: $accountId, plate: $plate, active: $active)'; }