The Programs feature is superseded by Shows, which provides a more flexible model with schedule slots. This commit removes all Programs code across frontend and backend: Frontend: - Delete admin-program-form component (ts/html/scss) - Delete program.service.ts and program.ts interface - Remove Programs tab, form modal, and all CRUD logic from admin component (ts + html) Backend: - Delete programs API router - Remove Program ORM model and ProgramCreate/Update/Response schemas - Remove programs router registration from main.py - Remove Program from seed data, seed helpers, and truncate/reset
29 lines
956 B
Python
29 lines
956 B
Python
from fastapi import APIRouter
|
|
|
|
from app.config import settings
|
|
from app.database import get_session
|
|
from app.models import DonationTier, Event, StationConfig, Show, ShowSchedule
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/reset")
|
|
async def reset_database():
|
|
"""Truncate all tables and re-seed. Dev-only — disabled in production."""
|
|
if settings.ENV == "production":
|
|
return {"error": "Admin reset is disabled in production"}
|
|
|
|
from app.database import async_session
|
|
from seed import seed as run_seed
|
|
|
|
async with async_session() as session:
|
|
await session.execute(ShowSchedule.__table__.delete())
|
|
await session.execute(Show.__table__.delete())
|
|
await session.execute(Event.__table__.delete())
|
|
await session.execute(DonationTier.__table__.delete())
|
|
await session.execute(StationConfig.__table__.delete())
|
|
await session.commit()
|
|
|
|
await run_seed()
|
|
return {"status": "reset complete"}
|