from typing import Optional, List, Any
from datetime import datetime

from ....core.interfaces.dto import Dto
from ....core.interfaces.core import Core


class AppChangeLog[Properties: Any](Core[Properties]):
  code: Optional[str]
  semver: str
  changes: List[str]
  deprecation_date: Optional[datetime]


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


class AppChangeLogDto[Properties: Any](Dto[Properties]):
  code: Optional[str]
  semver: str
  changes: List[str]
  deprecation_date: Optional[datetime]
