Files
LinedanceAfspiller/linedance-api/app/main.py
2026-04-11 00:38:04 +02:00

53 lines
1.8 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.core.database import engine, Base
from app.routers import auth, projects, songs, alternatives, dances
from app.websocket.manager import router as ws_router
# Opret tabeller hvis de ikke findes (til udvikling — brug Alembic i produktion)
Base.metadata.create_all(bind=engine)
app = FastAPI(
title="Linedance API",
version="0.1.0",
description="Backend for linedance-afspiller og projektstyring",
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Stram til i produktion
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(auth.router)
app.include_router(projects.router)
app.include_router(songs.router)
app.include_router(alternatives.router)
app.include_router(dances.router)
@app.on_event("startup")
def seed_dance_levels():
"""Opret standard dans-niveauer hvis tabellen er tom."""
from sqlalchemy.orm import Session
from app.models import DanceLevel
with Session(engine) as db:
if db.query(DanceLevel).count() == 0:
defaults = [
DanceLevel(sort_order=1, name="Begynder", description="Passer til alle"),
DanceLevel(sort_order=2, name="Let øvet", description="Lidt erfaring kræves"),
DanceLevel(sort_order=3, name="Øvet", description="Kræver regelmæssig træning"),
DanceLevel(sort_order=4, name="Erfaren", description="For dedikerede dansere"),
DanceLevel(sort_order=5, name="Ekspert", description="Konkurrenceniveau"),
]
db.add_all(defaults)
db.commit()
app.include_router(ws_router)
@app.get("/")
def root():
return {"status": "ok", "service": "Linedance API"}