57 lines
2.1 KiB
Python
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()
|