-- 012_geocode_confidence.sql -- Durcissement du géocodage : on rend la confiance et la granularité exploitables. -- -- Bug corrigé côté worker : sur un cache hit, la confiance était écrite à 0.5 en -- dur, jetant la vraie valeur présente dans le raw. On ajoute des colonnes -- confidence + granularity à geocode_cache et on les recalcule depuis le raw -- Geoapify (FeatureCollection). Aucune purge ici (la purge Nominatim + le reset -- complet sont des boutons admin, pour maîtriser le budget API). ALTER TABLE band_locations ADD COLUMN IF NOT EXISTS geocode_granularity TEXT; ALTER TABLE geocode_cache ADD COLUMN IF NOT EXISTS confidence REAL, ADD COLUMN IF NOT EXISTS granularity TEXT; -- Recalcul pour les entrées Geoapify (raw = FeatureCollection avec rank.confidence) UPDATE geocode_cache SET confidence = NULLIF(raw->'features'->0->'properties'->'rank'->>'confidence', '')::real, granularity = raw->'features'->0->'properties'->>'result_type' WHERE raw ? 'features' AND confidence IS NULL; -- Fast-path de dedup au niveau step : lookup par lieu normalisé CREATE INDEX IF NOT EXISTS idx_bl_locraw_lower ON band_locations (lower(location_raw));