fediversion/backend/seed_dso.py
fullsizemalt 7b8ba4b54c
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
feat: User Personalization, Playlists, Recommendations, and DSO Importer
2025-12-29 16:28:43 -08:00

57 lines
2.1 KiB
Python

from sqlmodel import Session, select, create_engine
from database import engine
from models import Vertical, Scene, VerticalScene, Artist
from importers.dso import DsoImporter
def seed_dso():
with Session(engine) as session:
# 1. Ensure "Grateful Dead Family" scene exists
scene = session.exec(select(Scene).where(Scene.slug == "grateful-dead-family")).first()
if not scene:
scene = Scene(name="Grateful Dead Family", slug="grateful-dead-family")
session.add(scene)
session.commit()
session.refresh(scene)
# 2. Add Artist
print("Creating Artist...")
artist = session.exec(select(Artist).where(Artist.slug == "dark-star-orchestra")).first()
if not artist:
artist = Artist(name="Dark Star Orchestra", slug="dark-star-orchestra")
session.add(artist)
session.commit()
session.refresh(artist)
# 3. Add Vertical (Band)
print("Creating Vertical...")
vertical = session.exec(select(Vertical).where(Vertical.slug == "dark-star-orchestra")).first()
if not vertical:
vertical = Vertical(
name="Dark Star Orchestra",
slug="dark-star-orchestra",
description="Recreating the Grateful Dead concert experience.",
setlistfm_mbid="e477d9c0-1f35-40f7-ad1a-b915d2523b84",
primary_artist_id=artist.id
)
session.add(vertical)
session.commit()
session.refresh(vertical)
# 4. Link to Scene
link = session.exec(select(VerticalScene).where(
VerticalScene.vertical_id == vertical.id,
VerticalScene.scene_id == scene.id
)).first()
if not link:
session.add(VerticalScene(vertical_id=vertical.id, scene_id=scene.id))
session.commit()
print("✅ Vertical seeded successfully.")
# 5. Run Import (Optional - can be run separately)
print("Starting import...")
importer = DsoImporter(session)
importer.import_all()
if __name__ == "__main__":
seed_dso()