Files
xenia-pos-cloud/cloud_backend/models/manager_account.py
bonamin 7d75ef44f7 fix: explicitly import Site in manager_account to resolve relationship
SQLAlchemy couldn't resolve the string 'Site' in ManagerAccount's
relationship() at query time because Site wasn't guaranteed to be
imported first. Adding the explicit import ensures the mapper is
configured correctly regardless of import order.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 00:57:02 +03:00

28 lines
1.1 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from database import Base
from models.site import Site # noqa: F401 — needed so SQLAlchemy resolves "Site" in relationship
# Many-to-many: one manager can access multiple sites, one site can have multiple managers
manager_site_access = Table(
"manager_site_access",
Base.metadata,
Column("manager_id", Integer, ForeignKey("manager_accounts.id"), primary_key=True),
Column("site_id", Integer, ForeignKey("sites.id"), primary_key=True),
)
class ManagerAccount(Base):
__tablename__ = "manager_accounts"
id = Column(Integer, primary_key=True, index=True)
email = Column(String, unique=True, nullable=False, index=True)
password_hash = Column(String, nullable=False)
full_name = Column(String, nullable=True)
is_active = Column(Integer, default=1, nullable=False)
created_at = Column(DateTime(timezone=True), server_default=func.now())
sites = relationship("Site", secondary=manager_site_access, backref="manager_accounts")