from fastapi import FastAPI import os from routers import auth, shows, venues, songs, social, tours, artists, preferences, reviews, badges, nicknames, moderation, attendance, groups, users, search, performances, notifications, feed, leaderboards, stats, admin, chase, gamification, videos, musicians, sequences, verticals, canon, on_this_day, discover from fastapi.middleware.cors import CORSMiddleware # Feature flags - set to False to disable features ENABLE_BUG_TRACKER = os.getenv("ENABLE_BUG_TRACKER", "true").lower() == "true" app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], # In production, set this to the frontend domain allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(auth.router) app.include_router(shows.router) app.include_router(venues.router) app.include_router(songs.router) app.include_router(social.router) app.include_router(tours.router) app.include_router(artists.router) app.include_router(preferences.router) app.include_router(reviews.router) app.include_router(badges.router) app.include_router(nicknames.router) app.include_router(moderation.router) app.include_router(attendance.router) app.include_router(groups.router) app.include_router(users.router) app.include_router(search.router) app.include_router(performances.router) app.include_router(notifications.router) app.include_router(feed.router) app.include_router(leaderboards.router) app.include_router(stats.router) app.include_router(admin.router) app.include_router(chase.router) app.include_router(gamification.router) app.include_router(videos.router) app.include_router(musicians.router) app.include_router(sequences.router) app.include_router(verticals.router) app.include_router(canon.router) app.include_router(on_this_day.router) app.include_router(discover.router) # Optional features - can be disabled via env vars if ENABLE_BUG_TRACKER: from routers import tickets app.include_router(tickets.router) @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/healthz") def health_check(): """Health check endpoint for monitoring and load balancers""" return {"status": "healthy"}