"""User model for authentication and ownership.""" import uuid from datetime import datetime from sqlalchemy import Boolean, Column, DateTime, String from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.database.base import Base class User(Base): """User model representing registered users.""" __tablename__ = "users" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) email = Column(String(255), unique=True, nullable=False, index=True) password_hash = Column(String(255), nullable=False) created_at = Column(DateTime, nullable=False, default=datetime.utcnow) updated_at = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) is_active = Column(Boolean, nullable=False, default=True) # Relationships boards = relationship("Board", back_populates="user", cascade="all, delete-orphan") images = relationship("Image", back_populates="user", cascade="all, delete-orphan") def __repr__(self) -> str: return f""