This commit is contained in:
el 2025-06-24 18:17:53 +02:00
commit d7666f7b2c
44 changed files with 2246 additions and 0 deletions

55
backend/main.py Normal file
View file

@ -0,0 +1,55 @@
# backend/main.py
import sys
import os
# Ajoutez le répertoire parent du fichier actuel (qui est 'backend/') au PYTHONPATH
# Cela permet d'importer des modules depuis 'backend.services', 'backend.routers', etc.
# sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
# AJOUTEZ CETTE LIGNE TEMPORAIREMENT POUR LE DEBUG
print(f"DEBUG: sys.path = {sys.path}")
# FIN DE L'AJOUT TEMPORAIRE
# Le reste de vos imports
from fastapi import FastAPI
from contextlib import asynccontextmanager
from core.database import Base, engine
from models import user
from models import document
from models import ai_interaction
from routers import auth
from routers import document as document_router
from routers import ai as ai_router
from routers import france_travail_offers
# Cette fonction sera appelée au démarrage et à l'arrêt de l'application
@asynccontextmanager
async def lifespan(app: FastAPI):
print("L'application démarre. Les migrations de DB sont gérées par Alembic.")
yield
print("L'application s'arrête.")
app = FastAPI(
title="Allons-y API",
description="API pour l'assistant de candidature basé sur l'IA.",
version="0.1.0",
lifespan=lifespan,
openapi_tags=[
{"name": "Authentication", "description": "Opérations liées à l'authentification des utilisateurs."},
{"name": "Documents", "description": "Gestion des CVs et autres documents de l'utilisateur."},
{"name": "Offers (France Travail)", "description": "Recherche et consultation des offres d'emploi via l'API France Travail."}, # <-- NOUVELLE SECTION TAG
{"name": "AI Analysis", "description": "Endpoints pour l'analyse IA de CVs et offres d'emploi."},
]
)
# Inclure les routeurs
app.include_router(auth.router)
app.include_router(document_router.router)
app.include_router(ai_router.router)
app.include_router(france_travail_offers.router, prefix="/france-travail/offers", tags=["Offers (France Travail)"])
@app.get("/")
async def read_root():
return {"message": "Bienvenue sur l'API Allons-y Alonzo!"}