""" Application FastAPI principale """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import HTMLResponse from app.routers import admission, rh from app.core.config import settings # Configuration de l'application app = FastAPI( title="API Admission Rush School", description="API pour gérer les documents d'admission et le module RH", version="1.0.0", debug=settings.debug ) # Configuration CORS app.add_middleware( CORSMiddleware, allow_origins=["http://localhost:3000", "http://localhost:5173", "*"], # À restreindre en production allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Inclure les routers app.include_router(admission.router, prefix="/api/v1") app.include_router(rh.router, prefix="/api/v1") @app.get("/", response_class=HTMLResponse) async def root(): """Page d'accueil de l'API""" return """ API Admission Rush School

🎓 API Admission Rush School

API pour gérer les documents d'admission des candidats

📋 Endpoints disponibles

GET /api/v1/admission/candidates
Récupère tous les candidats
GET /api/v1/admission/candidates/{record_id}/documents
Récupère le statut des documents d'un candidat
POST /api/v1/admission/candidates/{record_id}/documents/cv
Upload d'un CV
POST /api/v1/admission/candidates/{record_id}/documents/cin
Upload d'une carte d'identité
POST /api/v1/admission/candidates/{record_id}/documents/lettre-motivation
Upload d'une lettre de motivation
POST /api/v1/admission/candidates/{record_id}/documents/carte-vitale
Upload d'une carte vitale
POST /api/v1/admission/candidates/{record_id}/documents/dernier-diplome
Upload d'un dernier diplôme
GET /api/v1/admission/health
Vérification de santé de l'API

📚 Documentation

📖 Documentation Swagger UI
📘 Documentation ReDoc

ℹ️ Informations

""" @app.get("/api/v1/health") async def health(): """Endpoint de santé global""" return { "status": "healthy", "service": "admission-api", "version": "1.0.0" } if __name__ == "__main__": import uvicorn uvicorn.run( "main:app", host=settings.host, port=settings.port, reload=settings.debug )