"""Pydantic models for message-delivery options and results."""

from pathlib import Path

from pydantic import BaseModel


class DeliveryOptions(BaseModel):
    """Options controlling the delivery pipeline behavior."""

    subject: str | None = None
    filename: str | None = None
    no_push: bool = False
    no_email: bool = False
    no_commit: bool = False
    dry_run: bool = False
    to_email: str | None = None


class DeliveryResult(BaseModel):
    """Result of a delivery pipeline run."""

    note_path: Path
    committed: bool = False
    emailed: bool = False
    pushed: bool = False
