import uuid

from pgvector.sqlalchemy import Vector
from sqlalchemy import ForeignKey, String
from sqlalchemy.orm import Mapped, mapped_column, relationship

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


class FaceEmbedding(UUIDPrimaryKey, TimestampMixin, Base):
    __tablename__ = "face_embeddings"

    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"))
    embedding = mapped_column(Vector(512), nullable=False)
    image_path: Mapped[str | None] = mapped_column(String(500))

    user = relationship("User", back_populates="face_embeddings")
