import uuid from sqlalchemy import create_engine from sqlalchemy.orm import Session from app.database import Base from app.models import Rig, RigComponent, TackleItem def test_tackle_item_and_rig_components_keep_provenance_and_legacy_independence() -> None: engine = create_engine("sqlite:///:memory:") Base.metadata.create_all(engine) item_id = uuid.uuid4() rig_id = uuid.uuid4() with Session(engine) as session: item = TackleItem( id=item_id, name="Spiker #2", normalized_name="spiker #2", category="lure", subcategory="spinner", brand="RF4", family="spoon", unlock_level=0, source_system="rf4db", source_external_id="spiker-2", source_url="https://rf4db.com/ru/wiki/lures/spiker-2", raw_payload={"weight": {"state": "value", "value": 0}}, ) rig = Rig( id=rig_id, name="Method Popup", normalized_name="method popup", source_system="rf4db", source_external_id="method-popup", ) rig.components.append(RigComponent(role="lure", position=0, tackle_item=item, raw_value="Spiker #2")) session.add(rig) session.commit() saved = session.get(TackleItem, item_id) assert saved is not None assert saved.unlock_level == 0 assert saved.raw_payload == {"weight": {"state": "value", "value": 0}} assert saved.rig_components[0].rig_id == rig_id