diff --git a/backend/main.py b/backend/main.py
index 68e3f15..b67d706 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -2,18 +2,14 @@ from fastapi import FastAPI, Depends, HTTPException, status, Request, Response
from fastapi.responses import RedirectResponse, FileResponse
from fastapi.staticfiles import StaticFiles
from sqlalchemy.orm import Session
+from typing import List
import os
# Importation de nos modules locaux
from .database import engine, Base, get_db
-from .models import User
+from .models import User, Project, Message
from .auth import get_password_hash, generate_totp_secret, get_totp_uri, verify_password, verify_totp, create_access_token, verify_token
-from .schemas import AdminCreate, LoginRequest
-
-# MAJ BDD
-from typing import List
-from .schemas import AdminCreate, LoginRequest, ProjectCreate, ProjectResponse
-from .models import User, Project
+from .schemas import AdminCreate, LoginRequest, ProjectCreate, ProjectResponse, MessageCreate, MessageResponse
# Création des tables dans la base de données
Base.metadata.create_all(bind=engine)
@@ -196,4 +192,27 @@ def delete_project(project_id: int, db: Session = Depends(get_db), current_user:
db.delete(project)
db.commit()
- return {"message": "Projet supprimé"}
\ No newline at end of file
+ return {"message": "Projet supprimé"}
+
+# --- GESTION DES MESSAGES ---
+
+@app.get("/api/projects/{project_id}/messages", response_model=List[MessageResponse])
+def get_messages(project_id: int, db: Session = Depends(get_db), current_user: User = Depends(get_current_user)):
+ """Récupère tous les messages d'un projet spécifique."""
+ project = db.query(Project).filter(Project.id == project_id, Project.user_id == current_user.id).first()
+ if not project:
+ raise HTTPException(status_code=404, detail="Projet introuvable")
+ return db.query(Message).filter(Message.project_id == project_id).order_by(Message.created_at.asc()).all()
+
+@app.post("/api/projects/{project_id}/messages", response_model=MessageResponse)
+def create_message(project_id: int, message: MessageCreate, db: Session = Depends(get_db), current_user: User = Depends(get_current_user)):
+ """Ajoute un message à un projet."""
+ project = db.query(Project).filter(Project.id == project_id, Project.user_id == current_user.id).first()
+ if not project:
+ raise HTTPException(status_code=404, detail="Projet introuvable")
+
+ new_message = Message(role=message.role, content=message.content, project_id=project_id)
+ db.add(new_message)
+ db.commit()
+ db.refresh(new_message)
+ return new_message
\ No newline at end of file
diff --git a/backend/schemas.py b/backend/schemas.py
index 6c05cf6..7e34133 100644
--- a/backend/schemas.py
+++ b/backend/schemas.py
@@ -24,5 +24,21 @@ class ProjectResponse(ProjectBase):
created_at: datetime
is_pinned: bool
+ class Config:
+ from_attributes = True
+
+ # --- NOUVEAU : Schémas pour les Messages ---
+class MessageBase(BaseModel):
+ role: str
+ content: str
+
+class MessageCreate(MessageBase):
+ pass
+
+class MessageResponse(MessageBase):
+ id: int
+ created_at: datetime
+ project_id: int
+
class Config:
from_attributes = True
\ No newline at end of file
diff --git a/frontend/dashboard.html b/frontend/dashboard.html
index 415dd25..bb2bd02 100644
--- a/frontend/dashboard.html
+++ b/frontend/dashboard.html
@@ -8,9 +8,7 @@
@@ -26,9 +24,9 @@
-
+
@@ -53,14 +48,14 @@
Épinglés
- -
+
-
{{ project.title }}
-
-
+
+
@@ -70,67 +65,76 @@
Récents
- - Aucun projet pour le moment.
- -
+
- Aucun projet.
+ -
{{ project.title }}
-
-
+
+
-
-
-
-
- {{ username.charAt(0).toUpperCase() }}
-
-
{{ username }}
-
-
+
+
+
{{ username.charAt(0).toUpperCase() }}
+
{{ username }}
+
-
+
+
Comment puis-je vous aider aujourd'hui ?
-
L'orchestrateur Multi-IA est prêt.
+
Sélectionnez ou créez un projet pour commencer.
+
+
+
Démarrez la conversation ci-dessous.
+
+
+
+
+
+ {{ msg.role === 'user' ? 'Vous' : 'AETHAS38' }}
+
+
{{ msg.content }}
+
+
+
+
-
+
-
+
AETHAS38 peut faire des erreurs. Vérifiez toujours les informations importantes.
@@ -138,7 +142,6 @@