dodil/erp-brick-payments

DODIL ERP brick: payments

src/brick_payments/domain/events.py

"""Domain events: one per thing that happened. An aggregate records them in `.events`; nothing publishes them -
a brick that must react calls its seam."""
from dataclasses import dataclass
from decimal import Decimal


@dataclass(frozen=True)
class ReceiptRecorded:
    payment_id: str
    amount: Decimal
    currency: str


@dataclass(frozen=True)
class ReceiptReversed:
    payment_id: str
    returned_on: str


@dataclass(frozen=True)
class RefundRequested:
    refund_id: str
    amount: Decimal


@dataclass(frozen=True)
class RefundApproved:
    refund_id: str
    by: str


@dataclass(frozen=True)
class RefundRejected:
    refund_id: str
    by: str


@dataclass(frozen=True)
class RefundPaid:
    refund_id: str
    paid_on: str