import 'package:holzleitner_api/holzleitner_api.dart' as api;

import 'package:hl_lieferservice/domain/entity/car.dart';

/// Mapper zwischen dem generierten API-DTO `api.Car` (built_value)
/// und der Domain-Entity [Car].
///
/// Nur Read-Mapper hier — Create/Update geht über die Request-DTOs
/// `api.CreateCarRequest` / `api.UpdateCarRequest`, die die Repository-
/// Impl direkt zusammenbaut.
extension ApiCarMapper on api.Car {
  Car toDomain() => Car(
    id: id,
    accountId: accountId,
    plate: plate,
    active: active,
  );
}

/// Liste-Variante als Convenience.
extension ApiCarIterableMapper on Iterable<api.Car> {
  List<Car> toDomainList() => map((c) => c.toDomain()).toList(growable: false);
}
