generateLocationCLID static method
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';
}