feat: preserve gear components through catch imports
CI / backend-and-migrations (push) Waiting to run
CI / astro-build (push) Waiting to run
CI / dependency-audit (push) Waiting to run
CI / compose-e2e (push) Waiting to run

This commit is contained in:
ik
2026-09-20 18:10:41 +07:00
parent 4e9895fbf4
commit 4f0c2d23de
15 changed files with 379 additions and 7 deletions
+13
View File
@@ -11,6 +11,8 @@ from .models import (
Bait, BaitKind, CatchReport, ExternalEntityAlias, ExternalObservation,
Fish, ModerationStatus, SourceType, Spot, Waterbody,
)
from .tackle_components import replace_tackle_components
from rf4_research.gear_components import from_catch_fields
class ExternalReviewError(ValueError):
@@ -118,6 +120,17 @@ def publish_observation(session: Session, observation: ExternalObservation) -> C
setattr(report, key, value)
session.add(report)
session.flush()
replace_tackle_components(
session,
report,
from_catch_fields(
bait=observation.payload.get("bait"),
rig_type=observation.payload.get("rig_type"),
),
source_system=observation.source_system,
source_url=observation.source_url,
raw_payload={"origin": "community_observation", "observation_id": str(observation.id)},
)
observation.catch_report = report
observation.status = "published"
observation.reviewed_at = now