This commit is contained in:
xds
2026-03-22 13:26:38 +03:00
parent f98c57a433
commit beb14b4e43
11 changed files with 272 additions and 62 deletions

View File

@@ -6,10 +6,12 @@ from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from sqlalchemy import select
from app.config import settings
from app.database import async_session, engine, Base
from app.models import Material
from app.models import Material, AdminUser
from app.seed.materials import MATERIALS
from app.routers import calculate, materials, orders, ai_advisor
from app.services.auth import hash_password
from app.routers import calculate, materials, orders, ai_advisor, admin
# Configure logging
logging.basicConfig(
@@ -50,6 +52,22 @@ async def lifespan(app: FastAPI):
else:
logger.info("Materials already exist, skipping seed")
# Seed default admin user
logger.info("Checking admin user...")
async with async_session() as session:
result = await session.execute(select(AdminUser).limit(1))
if result.scalar_one_or_none() is None:
admin_user = AdminUser(
email=settings.ADMIN_DEFAULT_EMAIL,
password_hash=hash_password(settings.ADMIN_DEFAULT_PASSWORD),
name="Admin",
)
session.add(admin_user)
await session.commit()
logger.info("Default admin created: %s", settings.ADMIN_DEFAULT_EMAIL)
else:
logger.info("Admin user already exists, skipping")
logger.info("=== Application ready ===")
yield
logger.info("=== Application shutdown ===")
@@ -82,6 +100,7 @@ app.include_router(calculate.router, prefix="/api")
app.include_router(materials.router, prefix="/api")
app.include_router(orders.router, prefix="/api")
app.include_router(ai_advisor.router, prefix="/api")
app.include_router(admin.router, prefix="/api/admin")
@app.get("/api/health")