fix: l'observation la plus proche gagne — évite l'écrasement par zone distante
ImpactScoreService : ne pas écraser le score si la nouvelle observation est plus loin que le score actuel (sauf après 6h de stale). Empêche Barbade d'écraser la Guadeloupe avec 367km quand des sargasses sont à 8km. SpotScoreController : horizons et bancs filtrés par proximité (<300km) du spot, plus la dernière observation globale quelle que soit sa zone. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -107,7 +107,10 @@ class SpotScoreController extends AbstractController
|
||||
JOIN sargassum_observation o ON o.id = f.source_observation_id
|
||||
WHERE f.source_observation_id = (
|
||||
SELECT o2.id FROM sargassum_observation o2
|
||||
INNER JOIN sargassum_forecast ff ON ff.source_observation_id = o2.id
|
||||
INNER JOIN sargassum_forecast ff ON ff.source_observation_id = o2.id,
|
||||
coastal_point cp3
|
||||
WHERE cp3.id = :spotId
|
||||
AND ST_Distance(o2.geometry::geography, cp3.geometry::geography) < 300000
|
||||
ORDER BY o2.detected_at DESC LIMIT 1
|
||||
)
|
||||
ORDER BY f.time_horizon ASC',
|
||||
@@ -226,7 +229,10 @@ class SpotScoreController extends AbstractController
|
||||
FROM sargassum_observation o
|
||||
WHERE o.id = (
|
||||
SELECT o2.id FROM sargassum_observation o2
|
||||
INNER JOIN sargassum_forecast ff ON ff.source_observation_id = o2.id
|
||||
INNER JOIN sargassum_forecast ff ON ff.source_observation_id = o2.id,
|
||||
coastal_point cp3
|
||||
WHERE cp3.id = :spotId
|
||||
AND ST_Distance(o2.geometry::geography, cp3.geometry::geography) < 300000
|
||||
ORDER BY o2.detected_at DESC LIMIT 1
|
||||
)
|
||||
) dump
|
||||
|
||||
Reference in New Issue
Block a user