from datetime import datetime, timezone from sqlalchemy.ext.asyncio import AsyncSession from app.models.lagerbewegung import Lagerbewegung from app.models.objekt import Objekt async def verschiebe_objekt( db: AsyncSession, *, objekt: Objekt, nach_standort_id: int, benutzer_id: int, grund: str | None ) -> Lagerbewegung: """Roadmap Phase 4 (Modul Lager): setzt objekt.standort_id und protokolliert die Bewegung in einem Zug - von_standort_id ist der ALTE Stand vor dem Setzen (muss vor der Zuweisung gelesen werden).""" bewegung = Lagerbewegung( objekt_id=objekt.id, von_standort_id=objekt.standort_id, nach_standort_id=nach_standort_id, benutzer_id=benutzer_id, zeitpunkt=datetime.now(timezone.utc), grund=grund, ) objekt.standort_id = nach_standort_id db.add(bewegung) await db.flush() return bewegung