Coverage for packages/kapitalbank/src/integrify/kapitalbank/schemas/request.py: 100%

61 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-10-19 02:39 +0000

1from decimal import Decimal 

2 

3from integrify.kapitalbank import env 

4from integrify.kapitalbank.schemas.utils import BaseSchema 

5from integrify.schemas import PayloadBaseModel 

6from pydantic import Field 

7 

8 

9class CreateOrderRequestSchema(PayloadBaseModel, BaseSchema): 

10 amount: Decimal 

11 currency: str 

12 description: str 

13 language: str | None = env.KAPITAL_INTERFACE_LANG 

14 hpp_redirect_url: str | None = Field(default=env.KAPITAL_REDIRECT_URL) 

15 type_rid: str | None = Field(default='Order_SMS') 

16 hpp_cof_capture_purposes: list[str] | None = Field(default=['Cit']) 

17 

18 

19class OrderInformationRequestSchema(PayloadBaseModel): 

20 URL_PARAM_FIELDS = {'order_id'} 

21 

22 order_id: int 

23 

24 

25class RefundOrderRequestSchema(PayloadBaseModel): 

26 URL_PARAM_FIELDS = {'order_id'} 

27 

28 order_id: int 

29 amount: Decimal 

30 phase: str = Field(default='Single') 

31 type: str = Field(default='Refund') 

32 

33 

34class SaveCardRequestSchema(CreateOrderRequestSchema): 

35 type_rid: str | None = Field(default='Order_DMS') 

36 hpp_cof_capture_purposes: list[str] | None = Field(default=['Cit', 'Recurring']) 

37 aut: dict[str, str] = Field(default={'purpose': 'AddCard'}) 

38 

39 

40class PayAndSaveCardRequestSchema(CreateOrderRequestSchema): 

41 type_rid: str | None = Field(default='Order_SMS') 

42 aut: dict[str, str] = Field(default={'purpose': 'AddCard'}) 

43 

44 

45class FullReverseOrderRequestSchema(PayloadBaseModel): 

46 URL_PARAM_FIELDS = {'order_id'} 

47 

48 order_id: int 

49 phase: str = Field(default='Auth') 

50 void_kind: str = Field(default='Full', serialization_alias='voidKind') 

51 

52 

53class ClearingOrderRequestSchema(PayloadBaseModel): 

54 URL_PARAM_FIELDS = {'order_id'} 

55 

56 order_id: int 

57 amount: Decimal 

58 phase: str = Field(default='Clearing') 

59 

60 

61class PartialReverseOrderRequestSchema(PayloadBaseModel): 

62 URL_PARAM_FIELDS = {'order_id'} 

63 

64 order_id: int 

65 amount: Decimal 

66 phase: str = Field(default='Single') 

67 void_kind: str = Field(default='Partial', serialization_alias='voidKind') 

68 

69 

70class OrderWithSavedCardRequestSchema(CreateOrderRequestSchema): 

71 type_rid: str | None = Field(default='Order_REC') 

72 hpp_redirect_url: None = None 

73 hpp_cof_capture_purposes: None = None 

74 

75 

76class LinkCardTokenRequestSchema(PayloadBaseModel): 

77 URL_PARAM_FIELDS = {'order_id', 'password'} 

78 

79 token: int 

80 order_id: int 

81 password: str 

82 

83 

84class ProcessPaymentWithSavedCardRequestSchema(PayloadBaseModel): 

85 URL_PARAM_FIELDS = {'order_id', 'password'} 

86 

87 amount: Decimal 

88 order_id: int 

89 password: str 

90 phase: str | None = Field(default='Single') 

91 conditions: dict[str, str] | None = Field(default={'cofUsage': 'Cit'})