from sqlalchemy import String
from sqlalchemy.orm import Mapped, mapped_column, relationship

from app.models.base import Base, TimestampMixin, UUIDPrimaryKey


class User(UUIDPrimaryKey, TimestampMixin, Base):
    __tablename__ = "users"

    name: Mapped[str | None] = mapped_column(String(100))

    face_embeddings = relationship(
        "FaceEmbedding", back_populates="user", cascade="all, delete-orphan",
    )
    garments = relationship(
        "Garment", back_populates="user", cascade="all, delete-orphan",
    )
