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
+10
View File
@@ -16,6 +16,8 @@ from .models import (
Bait, BaitKind, CatchReport, Fish, ImportRecordEvent, ImportStatus, ModerationStatus,
OfficialRecordImport, SourceType, Waterbody,
)
from .tackle_components import replace_tackle_components
from rf4_research.gear_components import from_catch_fields
USER_AGENT = "RF4-Spotter/0.1 (public records importer)"
@@ -222,6 +224,14 @@ def _import_records_locked(session: Session, *, url: str, region: str, category:
provenance={"source_system": "rf4-official", "source_url": url, "source_external_id": key},
))
run.rows_updated += 1
replace_tackle_components(
session,
report,
from_catch_fields(bait=raw.bait, rig_type=None),
source_system="rf4-official",
source_url=url,
raw_payload={"origin": "official_record", "source_external_id": key},
)
run.status = ImportStatus.success
run.finished_at = datetime.now(timezone.utc)
session.commit()