from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .routes.records import router as records_router from .database.connection import connect_to_mongo, close_mongo_connection from .services.record_service import RecordService from .config.settings import ALLOWED_ORIGINS app = FastAPI(title="Expense Tracker API", version="1.0.0") # CORS app.add_middleware( CORSMiddleware, allow_origins=ALLOWED_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.on_event("startup") async def startup_event(): await connect_to_mongo() await RecordService().ensure_indexes() @app.on_event("shutdown") async def shutdown_event(): await close_mongo_connection() app.include_router(records_router)