"""CLI: Stammdaten seeden – `python -m app.scripts.seed [--if-empty]`.""" import argparse import asyncio from sqlalchemy import func, select from app.db.session import SessionLocal, engine from app.models import Category from app.services.seed import seed_all async def main(only_if_empty: bool) -> None: async with SessionLocal() as session: if only_if_empty: vorhanden = ( await session.execute(select(func.count()).select_from(Category)) ).scalar_one() if vorhanden: print(f"Seed übersprungen: es gibt bereits {vorhanden} Kategorien.") await engine.dispose() return result = await seed_all(session) await engine.dispose() print( f"Seed fertig: {result['categories']} Kategorien, " f"{result['notification_rules']} Benachrichtigungsregeln neu angelegt." ) if __name__ == "__main__": parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( "--if-empty", action="store_true", help="Nur seeden, wenn noch keine Kategorie existiert. Für den Containerstart gedacht, " "damit bewusst gelöschte Kategorien nicht wiederkehren.", ) args = parser.parse_args() asyncio.run(main(args.if_empty))