"""Modèle de données pour les devoirs Pronote.""" from __future__ import annotations from datetime import date from pydantic import BaseModel, ConfigDict, Field class Homework(BaseModel): """Représente un devoir Pronote.""" model_config = ConfigDict(frozen=True) id: str = Field(..., description="ID stable (hachage)") subject: str = Field(..., description="Matière") teachers: tuple[str, ...] = Field(default=(), description="Liste des professeurs") assigned_on: date | None = Field(None, description="Date de distribution") due_on: date = Field(..., description="Date d'échéance") text: str = Field(..., description="Texte du devoir (brut)") html: str = Field(default="", description="Texte du devoir (HTML)")