diff --git a/backend/app/models/world.py b/backend/app/models/world.py index d10e896..3e0271a 100644 --- a/backend/app/models/world.py +++ b/backend/app/models/world.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey +from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey, ARRAY from sqlalchemy.dialects.postgresql import ENUM from sqlalchemy.orm import relationship from sqlalchemy.sql import func @@ -27,5 +27,17 @@ class World(Base): created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) + # Discovery metadata + category = Column(String(100), nullable=True, index=True) + tags = Column(ARRAY(String), nullable=True, server_default="{}") + play_count = Column(Integer, nullable=False, server_default="0") + last_played_at = Column(DateTime(timezone=True), nullable=True) + owner = relationship("User", back_populates="worlds") assets = relationship("Asset", back_populates="world", cascade="all, delete-orphan") + visits = relationship("WorldVisit", back_populates="world", cascade="all, delete-orphan") + + __table_args__ = ( + # GIN index on tags for efficient tag-based queries + {"sqlite_autoincrement": False}, + )