from __future__ import annotations from sqlalchemy import ForeignKey, String from sqlalchemy.orm import Mapped, mapped_column, relationship from app.db.base import Base, TimestampMixin, UUIDMixin class Location(Base, UUIDMixin, TimestampMixin): __tablename__ = "locations" customer_id: Mapped[str] = mapped_column(ForeignKey("customers.id", ondelete="CASCADE"), index=True) name: Mapped[str] = mapped_column(String(160)) street: Mapped[str | None] = mapped_column(String(220)) postal_code: Mapped[str | None] = mapped_column(String(20)) city: Mapped[str | None] = mapped_column(String(120)) room: Mapped[str | None] = mapped_column(String(120)) customer: Mapped["Customer"] = relationship(back_populates="locations") devices: Mapped[list["Device"]] = relationship(back_populates="location")