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
« prev ^ index » next coverage.py v7.16.0, created at 2026-10-19 02:39 +0000
1from decimal import Decimal
3from integrify.kapitalbank import env
4from integrify.kapitalbank.schemas.utils import BaseSchema
5from integrify.schemas import PayloadBaseModel
6from pydantic import Field
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'])
19class OrderInformationRequestSchema(PayloadBaseModel):
20 URL_PARAM_FIELDS = {'order_id'}
22 order_id: int
25class RefundOrderRequestSchema(PayloadBaseModel):
26 URL_PARAM_FIELDS = {'order_id'}
28 order_id: int
29 amount: Decimal
30 phase: str = Field(default='Single')
31 type: str = Field(default='Refund')
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'})
40class PayAndSaveCardRequestSchema(CreateOrderRequestSchema):
41 type_rid: str | None = Field(default='Order_SMS')
42 aut: dict[str, str] = Field(default={'purpose': 'AddCard'})
45class FullReverseOrderRequestSchema(PayloadBaseModel):
46 URL_PARAM_FIELDS = {'order_id'}
48 order_id: int
49 phase: str = Field(default='Auth')
50 void_kind: str = Field(default='Full', serialization_alias='voidKind')
53class ClearingOrderRequestSchema(PayloadBaseModel):
54 URL_PARAM_FIELDS = {'order_id'}
56 order_id: int
57 amount: Decimal
58 phase: str = Field(default='Clearing')
61class PartialReverseOrderRequestSchema(PayloadBaseModel):
62 URL_PARAM_FIELDS = {'order_id'}
64 order_id: int
65 amount: Decimal
66 phase: str = Field(default='Single')
67 void_kind: str = Field(default='Partial', serialization_alias='voidKind')
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
76class LinkCardTokenRequestSchema(PayloadBaseModel):
77 URL_PARAM_FIELDS = {'order_id', 'password'}
79 token: int
80 order_id: int
81 password: str
84class ProcessPaymentWithSavedCardRequestSchema(PayloadBaseModel):
85 URL_PARAM_FIELDS = {'order_id', 'password'}
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'})