diff --git a/unit/models/codecs.py b/unit/models/codecs.py index aed24b2..788f90d 100644 --- a/unit/models/codecs.py +++ b/unit/models/codecs.py @@ -372,6 +372,9 @@ "receivedPayment.created": lambda _id, _type, attributes, relationships: ReceivedPaymentCreatedEvent.from_json_api(_id, _type, attributes, relationships), + + "writeOffTransaction": lambda _id, _type, attributes, relationships: + WriteOffTransactionDTO.from_json_api(_id, _type, attributes, relationships), } diff --git a/unit/models/transaction.py b/unit/models/transaction.py index 4f5ed86..6fa0a88 100644 --- a/unit/models/transaction.py +++ b/unit/models/transaction.py @@ -463,6 +463,18 @@ def from_json_api(_id, _type, attributes, relationships): return NegativeBalanceCoverageTransactionDTO( _id, date_utils.to_datetime(attributes["createdAt"]), attributes["amount"], attributes["direction"], attributes["balance"], attributes["summary"], attributes.get("tags"), relationships) +class WriteOffTransactionDTO(BaseTransactionDTO): + def __init__(self, id: str, created_at: datetime, amount: int, direction: str, + balance: int, summary: str, tags: Optional[Dict[str, str]], relationships: Optional[Dict[str, Relationship]]): + BaseTransactionDTO.__init__(self, id, created_at, direction, amount, balance, summary, tags, relationships) + self.type = 'writeOffTransaction' + + @staticmethod + def from_json_api(_id, _type, attributes, relationships): + return WriteOffTransactionDTO( + _id, date_utils.to_datetime(attributes["createdAt"]), attributes["amount"], attributes["direction"], attributes["balance"], attributes["summary"], attributes.get("tags"), relationships) + + TransactionDTO = Union[OriginatedAchTransactionDTO, ReceivedAchTransactionDTO, ReturnedAchTransactionDTO, ReturnedReceivedAchTransactionDTO, DishonoredAchTransactionDTO, BookTransactionDTO, PurchaseTransactionDTO, AtmTransactionDTO, FeeTransactionDTO, CardTransactionDTO,