Coverage for functions \ flipdare \ wrapper \ payment \ payment_event_wrapper.py: 89%

47 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-05-08 12:22 +1000

1#!/usr/bin/env python 

2# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved. 

3# 

4# This file is part of Flipdare's proprietary software and contains 

5# confidential and copyrighted material. Unauthorised copying, 

6# modification, distribution, or use of this file is strictly 

7# prohibited without prior written permission from Flipdare Pty Ltd. 

8# 

9# This software includes third-party components licensed under MIT, 

10# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details. 

11# 

12 

13from __future__ import annotations 

14 

15from flipdare.generated.model.payment.payment_event_model import ( 

16 PaymentEventKeys, 

17 PaymentEventModel, 

18) 

19from flipdare.generated.model.payment.payment_result_model import PaymentResultModel 

20from flipdare.generated.shared.payment.payment_event_status import PaymentEventStatus 

21from flipdare.generated.shared.stripe.stripe_intent_status import StripeIntentStatus 

22from flipdare.generated.shared.stripe.stripe_refund_reason import StripeRefundReason 

23from flipdare.wrapper._persisted_wrapper import PersistedWrapper 

24 

25__all__ = ["PaymentEventWrapper"] 

26 

27 

28_K = PaymentEventKeys 

29 

30 

31class PaymentEventWrapper(PersistedWrapper[PaymentEventModel]): 

32 MODEL_CLASS = PaymentEventModel 

33 

34 # status 

35 

36 @property 

37 def stripe_charge_id(self) -> str | None: 

38 return self._model.stripe_charge_id 

39 

40 @property 

41 def status(self) -> PaymentEventStatus: 

42 return self._model.status 

43 

44 @property 

45 def intent_status(self) -> StripeIntentStatus: 

46 return self._model.intent_status 

47 

48 @property 

49 def stripe_error_code(self) -> str | None: 

50 return self._model.stripe_error_code 

51 

52 # config 

53 

54 @property 

55 def ip_address(self) -> str: 

56 return self._model.audit_info.ip_address 

57 

58 # result 

59 

60 @property 

61 def result(self) -> PaymentResultModel: 

62 return self._model.result 

63 

64 @property 

65 def amount_captured(self) -> int | None: 

66 return self._model.result.amount_captured 

67 

68 # fees 

69 

70 @property 

71 def stripe_fee_amount(self) -> int | None: 

72 return self._model.result.stripe_fee_amount 

73 

74 @property 

75 def app_fee_amount(self) -> int | None: 

76 return self._model.result.app_fee_amount 

77 

78 # messages 

79 

80 @property 

81 def refund_reason(self) -> StripeRefundReason | None: 

82 return self._model.refund_reason 

83 

84 @property 

85 def error_message(self) -> str | None: 

86 return self._model.error_message 

87 

88 @property 

89 def action_message(self) -> str | None: 

90 return self._model.action_message