feat: add Demo Requests module

- New demo_requests table (SQLAlchemy model + Alembic-ready)
- Public POST /api/demo-requests endpoint for the TapTrack website form
- Super-admin GET/PUT/DELETE endpoints to manage leads
- DemoRequestsPage.vue with stats row, filterable table, status updates, notes modal
- Sidebar nav item and route registered
This commit is contained in:
kevin-asprec
2026-03-17 09:50:14 +08:00
parent 56ecdbead3
commit 7d8cc3ca22
9 changed files with 385 additions and 7 deletions

View File

@@ -5,11 +5,12 @@ from fastapi.middleware.cors import CORSMiddleware
from app.database import engine, Base
# Import all models so Alembic/SQLAlchemy picks them up
from app.models import user, school, license, sms, billing, ticket, audit, announcement, email_log, report # noqa
from app.models import user, school, license, sms, billing, ticket, audit, announcement, email_log, report, demo_request # noqa
from app.routers import auth, schools, licenses, sms as sms_router, billing as billing_router
from app.routers import tickets, users, dashboard, school_portal, announcements, sync, email as email_router
from app.routers import search, audit
from app.routers import demo_requests as demo_requests_router
@asynccontextmanager
async def lifespan(app: FastAPI):
@@ -48,6 +49,7 @@ app.include_router(sync.router)
app.include_router(email_router.router)
app.include_router(search.router)
app.include_router(audit.router)
app.include_router(demo_requests_router.router)
@app.get("/api/health")
async def health():