from __future__ import annotations
from collections.abc import Sequence
from decimal import Decimal # noqa: TC003
from typing import TYPE_CHECKING
from uuid import UUID # noqa: TC003
from eventsourcing.pydantic.immutablemodel import DomainEvent
if TYPE_CHECKING:
from typing import TypeAlias
DomainEvents: TypeAlias = Sequence[DomainEvent]
[docs]
class AddedProductToShop(DomainEvent):
name: str
description: str
price: Decimal
[docs]
class AdjustedProductInventory(DomainEvent):
adjustment: int
[docs]
class AddedItemToCart(DomainEvent):
product_id: UUID
name: str
description: str
price: Decimal
[docs]
class RemovedItemFromCart(DomainEvent):
product_id: UUID
[docs]
class ClearedCart(DomainEvent):
pass
[docs]
class SubmittedCart(DomainEvent):
pass