from typing import Optional, Any

from .....enums.touch.pushes.histories import PusHistoryContentDir


class PusHistoryContent[T: Any]:
  title: str

  # Notification Options
  badge: Optional[str]
  body: Optional[str]
  data: Optional[T]
  dir: Optional[PusHistoryContentDir]
  icon: Optional[str]
  lang: Optional[str]
  require_interaction: Optional[bool]
  silent: Optional[bool]
  tag: Optional[str]


# ----------------------------------------
# Data Transfer Object Interface
# ----------------------------------------


class PusHistoryContentDto[T: Any]:
  title: str

  # Notification Options
  badge: Optional[str]
  body: Optional[str]
  data: Optional[T]
  dir: Optional[PusHistoryContentDir]
  icon: Optional[str]
  lang: Optional[str]
  require_interaction: Optional[bool]
  silent: Optional[bool]
  tag: Optional[str]
