generateLocationCLID static method

String generateLocationCLID(
  1. Location location
)

Generate a deterministic CLID for a location

Implementation

static String generateLocationCLID(Location location) {
  // Validate required fields
  final validation = _validateLocation(location);
  if (!validation.isValid) {
    throw ArgumentError(
      'Invalid location data: ${validation.errors.join(', ')}',
    );
  }

  // Build deterministic components
  final components = [
    location.country.toUpperCase(),
    location.state?.toLowerCase() ?? '',
    location.city != null ? StringUtils.normalize(location.city!) : '',
    StringUtils.normalize(location.name),
    location.coordinates.lat.toStringAsFixed(6),
    location.coordinates.lon.toStringAsFixed(6),
    location.isIndoor ? 'indoor' : 'outdoor',
  ];

  final input = components.where((s) => s.isNotEmpty).join(':');
  final uuid = _uuid.v5(crushlogNamespace, input);

  return 'clid:v1:location:$uuid';
}