GrowthPanelBackend / seed_db.py
hisham-cmd's picture
Upload seed_db.py
1b4300e verified
Raw
History Blame Contribute Delete
2.93 kB
import asyncio
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker
from database.models import Base, Category, Service
from decimal import Decimal
DATABASE_URL = "postgresql+asyncpg://postgres:postgres@localhost:5432/growthpanel"
async def seed_data():
engine = create_async_engine(DATABASE_URL, echo=True)
async_session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
async with async_session() as session:
async with session.begin():
# Create Categories
cat_list = [
Category(name="Instagram - Followers", slug="instagram-followers", icon="📸", sort_order=1),
Category(name="Instagram - Likes", slug="instagram-likes", icon="❤️", sort_order=2),
Category(name="TikTok - Views", slug="tiktok-views", icon="📱", sort_order=3),
Category(name="YouTube - Subscribers", slug="youtube-subscribers", icon="📺", sort_order=4),
]
session.add_all(cat_list)
await session.flush()
# Create Services
services_list = [
Service(
category_id=cat_list[0].id,
name="Instagram Followers [Real & Active] - 30 Days Refill",
price_per_1000=Decimal("1.50"),
min_quantity=100,
max_quantity=100000,
average_time="1-6 Hours",
status="active"
),
Service(
category_id=cat_list[0].id,
name="Instagram Followers [Standard Quality] - No Refill",
price_per_1000=Decimal("0.85"),
min_quantity=100,
max_quantity=500000,
average_time="Instant",
status="active"
),
Service(
category_id=cat_list[1].id,
name="Instagram Real Likes - Fast Delivery",
price_per_1000=Decimal("0.45"),
min_quantity=50,
max_quantity=50000,
average_time="0-15 Min",
status="active"
),
Service(
category_id=cat_list[2].id,
name="TikTok Views [Max 10M] - High Speed",
price_per_1000=Decimal("0.05"),
min_quantity=1000,
max_quantity=10000000,
average_time="Instant",
status="active"
)
]
session.add_all(services_list)
await session.commit()
print("Database seeded successfully!")
if __name__ == "__main__":
asyncio.run(seed_data())