WIP checkpoint: World discovery metadata + visits model & Alembic migration

This commit is contained in:
2026-08-18 17:47:10 +00:00
parent c3f94cee70
commit f7f9f06aed
2 changed files with 28 additions and 1 deletions
+2 -1
View File
@@ -2,5 +2,6 @@ from app.models.user import User
from app.models.session import Session
from app.models.world import World
from app.models.asset import Asset
from app.models.world_visit import WorldVisit
__all__ = ["User", "Session", "World", "Asset"]
__all__ = ["User", "Session", "World", "Asset", "WorldVisit"]
+26
View File
@@ -0,0 +1,26 @@
from sqlalchemy import Column, DateTime, ForeignKey, Index, Integer, String
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.database import Base
class WorldVisit(Base):
__tablename__ = "world_visits"
id = Column(Integer, primary_key=True, index=True)
world_id = Column(
Integer, ForeignKey("worlds.id", ondelete="CASCADE"), nullable=False
)
user_id = Column(
Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=True
)
anonymous_token = Column(String(255), nullable=True)
visited_at = Column(DateTime(timezone=True), server_default=func.now())
__table_args__ = (
Index("ix_world_visits_world_id_visited_at", "world_id", "visited_at"),
)
world = relationship("World", back_populates="visits")
user = relationship("User")