"""Logo d'une édition pour l'en-tête des emails (voir `app/email/html.py`) — `None` tant qu'aucun logo n'a été importé sur le formulaire public (`FormTemplate.logo`, `app/api/forms.py:set_logo`). Renvoie les octets (intégrés en pièce jointe « inline », voir `app/email/sender.py:build_message`), jamais une URL : `GET .../form/logo` exige désormais le `access_token` du formulaire public (`app/api/forms.py:_require_access_token`) — une URL externe dans un email aurait exposé ce jeton à quiconque lit la source du message, pas seulement la coordination.""" import uuid from sqlmodel import Session, select from app.models import FormTemplate def edition_logo(session: Session, edition_id: uuid.UUID) -> tuple[bytes, str] | None: template = session.exec( select(FormTemplate).where(FormTemplate.edition_id == edition_id) ).first() if template is None or template.logo is None: return None return template.logo, template.logo_content_type or "image/png"