from __future__ import annotations

import json
from typing import Any

from pydantic import BaseModel


def format_sse(event: str, data: BaseModel | dict[str, Any]) -> str:
    """Format a Server-Sent Event frame (event + JSON data)."""
    payload = data.model_dump(mode="json") if isinstance(data, BaseModel) else data
    return f"event: {event}\ndata: {json.dumps(payload, separators=(',', ':'))}\n\n"
