fix(models): disambiguate repair estimate user relationships

This commit is contained in:
Schubert Ferenc 2026-07-05 16:35:13 +02:00
parent 46eeaa1f2e
commit 7835d3ca75
4 changed files with 31 additions and 5 deletions

View file

@ -25,6 +25,7 @@ import app.models.customer
import app.models.knowledge
import app.models.audit
import app.models.user
import app.models.inventory
import app.models.repair
import app.models.repair_estimate
import app.models.system_setting

View file

@ -103,7 +103,11 @@ class InventoryStockMovement(Base):
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
item: Mapped[InventoryItem] = relationship(back_populates="movements")
actor = relationship("User", lazy="joined")
actor = relationship(
"User",
foreign_keys="InventoryStockMovement.actor_user_id",
lazy="joined",
)
@property
def actor_username(self) -> str:

View file

@ -56,7 +56,11 @@ class RepairStatusHistory(Base):
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
repair: Mapped[Repair] = relationship(back_populates="history")
actor = relationship("User", lazy="joined")
actor = relationship(
"User",
foreign_keys="RepairStatusHistory.actor_user_id",
lazy="joined",
)
@property
def actor_username(self) -> str:
@ -105,7 +109,11 @@ class RepairDocument(Base):
updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
repair: Mapped[Repair] = relationship(back_populates="documents")
uploaded_by = relationship("User", lazy="joined")
uploaded_by = relationship(
"User",
foreign_keys="RepairDocument.uploaded_by_user_id",
lazy="joined",
)
@property
def uploaded_by_username(self) -> str:

View file

@ -40,7 +40,16 @@ class RepairEstimate(Base):
updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
repair = relationship("Repair", lazy="joined")
created_by = relationship("User", lazy="joined")
created_by = relationship(
"User",
foreign_keys="RepairEstimate.created_by_user_id",
lazy="joined",
)
accounting_transferred_by = relationship(
"User",
foreign_keys="RepairEstimate.accounting_transferred_by_user_id",
lazy="joined",
)
items: Mapped[list["RepairEstimateItem"]] = relationship(
back_populates="estimate",
cascade="all, delete-orphan",
@ -92,4 +101,8 @@ class RepairEstimateEvent(Base):
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
estimate: Mapped[RepairEstimate] = relationship(back_populates="events")
actor = relationship("User", lazy="joined")
actor = relationship(
"User",
foreign_keys="RepairEstimateEvent.actor_user_id",
lazy="joined",
)