from pydantic import BaseModel, Field
from typing import List

class GeneratedFile(BaseModel):
    path: str = Field(description="Chemin relatif du fichier par rapport à la racine, ex: 'app/utils.py'")
    content: str = Field(description="Contenu source complet du fichier")

class ProjectCodeOutput(BaseModel):
    tree: List[str] = Field(description="Liste complète des chemins de fichiers générés")
    files: List[GeneratedFile] = Field(description="Liste des objets fichiers")
    spec_title: str = Field(description="Titre du projet d'origine")