from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.core.config import settings from app.api import auth, contacts, lists, templates, campaigns, imports, google, webhooks, stats, workers import logging # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) app = FastAPI( title="WhatsApp Campaign Manager API", description="Production-quality API for managing WhatsApp campaigns with compliance", version="1.0.0" ) # CORS app.add_middleware( CORSMiddleware, allow_origins=settings.cors_origins_list, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include routers app.include_router(auth.router, prefix="/api/auth", tags=["Authentication"]) app.include_router(contacts.router, prefix="/api/contacts", tags=["Contacts"]) app.include_router(lists.router, prefix="/api/lists", tags=["Lists"]) app.include_router(templates.router, prefix="/api/templates", tags=["Templates"]) app.include_router(campaigns.router, prefix="/api/campaigns", tags=["Campaigns"]) app.include_router(imports.router, prefix="/api/imports", tags=["Imports"]) app.include_router(google.router, prefix="/api/imports", tags=["Google OAuth"]) app.include_router(webhooks.router, prefix="/api/webhooks", tags=["Webhooks"]) app.include_router(stats.router, prefix="/api/stats", tags=["Statistics"]) app.include_router(workers.router, prefix="/api/workers", tags=["Workers"]) @app.get("/") def root(): return { "name": "WhatsApp Campaign Manager API", "version": "1.0.0", "status": "running" } @app.get("/health") def health_check(): return {"status": "healthy"}