from fastapi import FastAPI, BackgroundTasks from fastapi.middleware.cors import CORSMiddleware from tortoise import Tortoise from .Users.UserRoutes import user_router from .Webhooks.webhookRoute import webhook_router from .Subscriptions.SubscriptionRoutes import subscription_router from .modelInit import TORTOISE_ORM from .Payments.PaymentsRoutes import payment_router from .Plans.PlanRoutes import plan_router from .Portals.PortalRoutes import portal_router from .Metrics.MetricsRoutes import metrics_router from .Messages.MessagesRoute import message_router # from .Subscriptions.background_tasks import check_expiring_subscriptions import asyncio, os import logging import subprocess logging.basicConfig(level=logging.INFO) app = FastAPI() # Configure CORS to allow all origins app.add_middleware( CORSMiddleware, allow_origins=["*"], # Allows all origins allow_credentials=True, # Allows cookies and authentication headers allow_methods=["*"], # Allows all HTTP methods (GET, POST, PUT, DELETE, etc.) allow_headers=["*"], # Allows all headers ) @app.on_event("startup") async def startup_event(): await Tortoise.init(config=TORTOISE_ORM) await Tortoise.generate_schemas() @app.get("/") async def landing_page(): return {"code": 200, "message": "still running"} # Include routers app.include_router(user_router) app.include_router(webhook_router) app.include_router(subscription_router) app.include_router(payment_router) app.include_router(plan_router) app.include_router(portal_router) app.include_router(metrics_router) app.include_router(message_router) # if __name__ == "__main__": # import uvicorn # # Run the FastAPI app located at App.app:app # uvicorn.run(app, host="0.0.0.0", port=8000)