Coverage for src/integrify/epoint/schemas/request.py: 100%
43 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-10 00:57 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-10 00:57 +0000
1from decimal import Decimal
2from typing import Optional
4from pydantic import Field
6from integrify.epoint import env
7from integrify.schemas import PayloadBaseModel
10class MinimalPaymentRequestSchema(PayloadBaseModel):
11 amount: Decimal
12 currency: str
13 order_id: str
16class BasePaymentRequestSchema(MinimalPaymentRequestSchema):
17 success_redirect_url: Optional[str] = env.EPOINT_SUCCESS_REDIRECT_URL
18 error_redirect_url: Optional[str] = env.EPOINT_FAILED_REDIRECT_URL
19 description: Optional[str] = None
22##############################################################################
23class PaymentRequestSchema(BasePaymentRequestSchema):
24 other_attr: Optional[dict] = None
27class GetTransactionStatusRequestSchema(PayloadBaseModel):
28 transaction: str = Field(validation_alias='transaction_id')
31class SaveCardRequestSchema(PayloadBaseModel):
32 pass
35class PayWithSavedCardRequestSchema(MinimalPaymentRequestSchema):
36 card_id: str
39class PayAndSaveCardRequestSchema(BasePaymentRequestSchema):
40 pass
43class PayoutRequestSchema(MinimalPaymentRequestSchema):
44 card_id: str
45 description: Optional[str] = None
48class RefundRequestSchema(PayloadBaseModel):
49 transaction: str = Field(validation_alias='transaction_id')
50 currency: str
51 amount: Optional[Decimal] = None
54class SplitPayRequestSchema(BasePaymentRequestSchema):
55 split_user: str = Field(validation_alias='split_user_id')
56 split_amount: Decimal
57 other_attr: Optional[dict] = None
60class SplitPayWithSavedCardRequestSchema(MinimalPaymentRequestSchema):
61 card_id: str
62 split_user: str = Field(validation_alias='split_user_id')
63 split_amount: Decimal
64 description: Optional[str] = None
67class SplitPayAndSaveCardRequestSchema(BasePaymentRequestSchema):
68 split_user: str = Field(validation_alias='split_user_id')
69 split_amount: Decimal
70 description: Optional[str] = None