From 9644833db98a40cde726c80cab7badbd36f8a136 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Fri, 13 Mar 2026 19:15:15 +0200 Subject: [PATCH] fix(backend): seed.py add __main__ + seed_demo for demo tenant creation --- backend/app/db/seed.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/backend/app/db/seed.py b/backend/app/db/seed.py index 6b2c50f..20107a6 100644 --- a/backend/app/db/seed.py +++ b/backend/app/db/seed.py @@ -70,6 +70,21 @@ PRETURI = [ ] +async def seed_demo(db: AsyncSession) -> None: + from app.auth.service import register + from sqlalchemy import select + from app.db.models.user import User + + r = await db.execute(select(User).where(User.email == "demo@roaauto.ro")) + if r.scalar_one_or_none(): + print("Demo user already exists.") + return + user, tenant = await register(db, "demo@roaauto.ro", "demo123", "ROA AUTO Demo", "0722000000") + print(f"Created demo tenant: {tenant.id}, user: {user.email}") + counts = await seed_catalog(db, tenant.id) + print(f"Seeded catalog: {counts}") + + async def seed_catalog(db: AsyncSession, tenant_id: str) -> dict: now = datetime.now(UTC).isoformat() counts = {} @@ -117,3 +132,19 @@ async def seed_catalog(db: AsyncSession, tenant_id: str) -> dict: await db.commit() return counts + + +if __name__ == "__main__": + import asyncio + from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker + from app.config import settings + import app.db.models # noqa + + async def main(): + engine = create_async_engine(settings.DATABASE_URL) + Session = async_sessionmaker(engine, expire_on_commit=False) + async with Session() as db: + await seed_demo(db) + await engine.dispose() + + asyncio.run(main())