import 'package:maplibre_gl/maplibre_gl.dart';
import 'package:openapi/api.dart';

class MapMarker {
  final LatLng latLng;
  final String assetRemoteId;
  const MapMarker({required this.latLng, required this.assetRemoteId});

  MapMarker copyWith({LatLng? latLng, String? assetRemoteId}) {
    return MapMarker(latLng: latLng ?? this.latLng, assetRemoteId: assetRemoteId ?? this.assetRemoteId);
  }

  MapMarker.fromDto(MapMarkerResponseDto dto) : latLng = LatLng(dto.lat, dto.lon), assetRemoteId = dto.id;

  @override
  String toString() => 'MapMarker(latLng: $latLng, assetRemoteId: $assetRemoteId)';

  @override
  bool operator ==(covariant MapMarker other) {
    if (identical(this, other)) return true;

    return other.latLng == latLng && other.assetRemoteId == assetRemoteId;
  }

  @override
  int get hashCode => latLng.hashCode ^ assetRemoteId.hashCode;
}
