"""Account (Tenant) model.""" import uuid from datetime import datetime from sqlalchemy import String, DateTime, func from sqlalchemy.orm import Mapped, mapped_column, relationship from app.db.base import Base class Account(Base): """Represents a tenant/company account.""" __tablename__ = "accounts" id: Mapped[str] = mapped_column( String(36), primary_key=True, default=lambda: str(uuid.uuid4()) ) name: Mapped[str] = mapped_column(String(255), nullable=False) created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), nullable=False ) # Relationships users: Mapped[list["User"]] = relationship("User", back_populates="account") roles: Mapped[list["Role"]] = relationship("Role", back_populates="account") contacts: Mapped[list["Contact"]] = relationship( "Contact", back_populates="account" ) tags: Mapped[list["Tag"]] = relationship("Tag", back_populates="account") equipment: Mapped[list["Equipment"]] = relationship( "Equipment", back_populates="account" ) stock_locations: Mapped[list["StockLocation"]] = relationship( "StockLocation", back_populates="account" ) equipment_groups: Mapped[list["EquipmentGroup"]] = relationship( "EquipmentGroup", back_populates="account" ) crew_members: Mapped[list["Crew"]] = relationship("Crew", back_populates="account") vehicles: Mapped[list["Vehicle"]] = relationship( "Vehicle", back_populates="account" ) projects: Mapped[list["Project"]] = relationship( "Project", back_populates="account" )