"""Modèle de données pour le message XMPP final.""" from __future__ import annotations from datetime import date from pydantic import BaseModel, ConfigDict, Field from pronote_sync.models.blog import ExternalInfo from pronote_sync.models.diff import AgendaChange from pronote_sync.models.homework import Homework from pronote_sync.models.message import Message class XmppMessage(BaseModel): """Représente le message final à envoyer par XMPP.""" model_config = ConfigDict(frozen=True) target_date: date = Field(..., description="Date cible") synthesis: str | None = Field(None, description="Synthèse IA (optionnelle, 3-5 phrases)") homeworks: list[Homework] = Field(default_factory=list, description="Liste brute des devoirs") changes: list[AgendaChange] = Field( default_factory=list, description="Liste des changements d'agenda" ) messages: list[Message] = Field( default_factory=list, description="Liste des messages/informations" ) external_info: ExternalInfo | None = Field( None, description="Informations externes (blog, messages Pronote)" )