"""Group model for image grouping.""" import uuid from datetime import datetime from sqlalchemy import Column, DateTime, ForeignKey, String, Text from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.database.base import Base class Group(Base): """Group model for organizing images with annotations.""" __tablename__ = "groups" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) board_id = Column(UUID(as_uuid=True), ForeignKey("boards.id", ondelete="CASCADE"), nullable=False, index=True) name = Column(String(255), nullable=False) color = Column(String(7), nullable=False) # Hex color #RRGGBB annotation = Column(Text, nullable=True) created_at = Column(DateTime, nullable=False, default=datetime.utcnow) updated_at = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow) # Relationships board = relationship("Board", back_populates="groups") board_images = relationship("BoardImage", back_populates="group") def __repr__(self) -> str: return f""