from typing import Optional, Any

from ....core.interfaces.dto import Dto
from ....core.interfaces.core import Core
from ....enums.financial.common import PayType


class Pay[Properties: Any](Core[Properties]):
  type: PayType
  wallet: str
  amount: Optional[float]
  fraction: Optional[float]


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


class PayDto[Properties: Any](Dto[Properties]):
  type: PayType
  wallet: str
  amount: Optional[float]
  fraction: Optional[float]
