Coverage for src/integrify/kapital/schemas/response/detailed_order_response.py: 100%

119 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-02-10 00:57 +0000

1from datetime import datetime 

2from typing import Dict, List, Optional 

3 

4from pydantic import Field 

5 

6from integrify.kapital.schemas.enums import TransactionStatus 

7from integrify.kapital.schemas.utils import BaseSchema 

8 

9 

10class StoredToken(BaseSchema): 

11 id: int 

12 cof_provider_rid: Optional[str] = None 

13 rid_bycofp: Optional[str] = None 

14 

15 

16class CardAuthentication(BaseSchema): 

17 need_cvv2: bool 

18 need_tds: bool 

19 tran_id: Optional[str] = None 

20 tds_ds_tran_id: Optional[str] = None 

21 timestamp: Optional[datetime] = None 

22 tds_protocol_ver: Optional[str] = None 

23 eci: Optional[str] = None 

24 tds_a_res: Optional[str] = None 

25 

26 

27class CardDetails(BaseSchema): 

28 authentication: Optional[CardAuthentication] = None 

29 expiration: str 

30 brand: str 

31 issuer_rid: Optional[str] = None 

32 

33 

34class SrcToken(BaseSchema): 

35 id: int 

36 payment_method: str 

37 role: str 

38 status: str 

39 reg_time: datetime 

40 entry_mode: Optional[str] = None 

41 display_name: str 

42 card: CardDetails 

43 

44 

45class ConsumerDeviceBrowser(BaseSchema): 

46 user_agent: str 

47 color_depth: int 

48 pixel_ratio: float 

49 language: str 

50 tz_offset: int 

51 local_storage: bool 

52 language_replaced: bool 

53 resolution_replaced: bool 

54 os_replaced: bool 

55 browser_replaced: bool 

56 screen_w: int 

57 screen_h: int 

58 screen_avail_w: int 

59 screen_avail_h: int 

60 platform: str 

61 accept_header: str 

62 ip: str 

63 ref_url: str 

64 java_enabled: bool 

65 js_enabled: bool 

66 

67 

68class ConsumerDevice(BaseSchema): 

69 browser: ConsumerDeviceBrowser 

70 

71 

72class BusinessAddress(BaseSchema): 

73 country: str 

74 country_a2: str 

75 country_n3: int 

76 

77 

78class Merchant(BaseSchema): 

79 id: int 

80 rid: str 

81 title: str 

82 business_address: BusinessAddress 

83 trust_consumer_phone: bool 

84 

85 

86class DetailedOrderType(BaseSchema): 

87 allow_void: bool 

88 hpp_tran_phase: str 

89 secret_length: int 

90 title: str 

91 rid: str 

92 payment_methods: List[str] 

93 card_brands: Optional[List[str]] = None 

94 allow_tds_attempt: bool 

95 allow_tds_cant: bool 

96 allow_tds_challenged: bool 

97 allow_surcharge: bool 

98 allow_tran_types: List[str] 

99 allow_tran_phases: List[str] 

100 allow_auth_kinds: List[str] 

101 allow_cof_store_usages: List[str] 

102 order_class: str 

103 allow_cvv2: bool = Field(alias='allowCVV2') 

104 

105 

106class DetailedOrderInformationResponseSchema(BaseSchema): 

107 id: int 

108 hpp_url: str 

109 hpp_redirect_url: Optional[str] = None 

110 password: str 

111 status: TransactionStatus 

112 prev_status: Optional[str] = None 

113 last_status_login: str 

114 amount: float 

115 currency: str 

116 terminal: Dict 

117 src_amount: float 

118 src_amount_full: float 

119 src_currency: str 

120 dst_amount: Optional[float] = None 

121 dst_currency: Optional[str] = None 

122 stored_tokens: Optional[List[StoredToken]] = None 

123 create_time: datetime 

124 finish_time: Optional[datetime] = None 

125 cvv2_auth_status: str 

126 tds_v1_auth_status: Optional[str] = None 

127 tds_v2_auth_status: Optional[str] = None 

128 tds_server_url: Optional[str] = None 

129 authorized_charge_amount: float 

130 cleared_charge_amount: float 

131 cleared_refund_amount: float 

132 description: str 

133 language: str 

134 src_token: Optional[SrcToken] = None 

135 consumer_device: Optional[ConsumerDevice] = None 

136 merchant: Merchant 

137 initiation_env_kind: str 

138 type: DetailedOrderType 

139 hpp_cof_capture_purposes: List[str] 

140 cust_attrs: List[str] 

141 report_pubs: Dict