From 4cef9415aca9d48e25f58b22bda1421be9ef2f58 Mon Sep 17 00:00:00 2001 From: coder-bot Date: Tue, 18 Aug 2026 17:45:01 +0000 Subject: [PATCH] WIP checkpoint: World discovery metadata + visits model & Alembic migration --- backend/app/models/world.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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}, + )