feat: manage external source lifecycle
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / dependency-audit (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s

This commit is contained in:
ik
2026-09-13 16:26:34 +07:00
parent bb8040d6fb
commit bc3ceb5dfe
12 changed files with 157 additions and 6 deletions
+10
View File
@@ -68,6 +68,7 @@ def stage_observations(
"weight_g": _integer(payload.get("weight_g"), minimum=1, maximum=3_000_000),
"published_at": _datetime(payload.get("published_at")),
"last_seen_at": fetched_at, "payload": payload,
"source_check_status": "available", "source_checked_at": fetched_at,
}
if observation is None:
observation = ExternalObservation(
@@ -89,8 +90,17 @@ def stage_observations(
observation.fish = None
observation.waterbody = None
observation.review_note = "Source record changed; manual mapping and publication required"
observation.reviewed_at = fetched_at
observation.moderation_version += 1
for key, value in values.items():
setattr(observation, key, value)
if observation.status == "withdrawn":
observation.status = "staged"
observation.fish = None
observation.waterbody = None
observation.review_note = "Source record reappeared; manual confirmation required"
observation.reviewed_at = fetched_at
observation.moderation_version += 1
updated += 1
touched.append(observation)
session.commit()