init
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user