53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
from decimal import Decimal
|
|
from pydantic import BaseModel,Field
|
|
from src.application.domain.enums import SbpWithdrawalStatus
|
|
|
|
|
|
class SbpBankResponse(BaseModel):
|
|
id: str
|
|
name: str
|
|
|
|
|
|
class SbpBanksResponse(BaseModel):
|
|
status_code: int
|
|
banks: list[SbpBankResponse]
|
|
|
|
|
|
class CreateSbpWithdrawal(BaseModel):
|
|
bank_id: str = Field(min_length=1,max_length=32)
|
|
phone: str = Field(min_length=5,max_length=32)
|
|
usdt_amount: Decimal = Field(ge=Decimal('100'),le=Decimal('5000'),decimal_places=2,max_digits=20)
|
|
|
|
|
|
class SbpWithdrawalResponse(BaseModel):
|
|
id: str | None = None
|
|
created_at: str | None = None
|
|
updated_at: str | None = None
|
|
user_id: str | None = None
|
|
bank_id: str | None = None
|
|
bank_name: str | None = None
|
|
phone: str | None = None
|
|
wallet_address: str | None = None
|
|
usdt_amount: str | None = None
|
|
rub_amount: str | None = None
|
|
usdt_exchange_rate: str | None = None
|
|
service_fee_rate: str | None = None
|
|
service_fee_usdt: str | None = None
|
|
mozen_order_id: str | None = None
|
|
trace_id: str | None = None
|
|
status: SbpWithdrawalStatus | None = None
|
|
provider_error: str | None = None
|
|
usdt_received_at: str | None = None
|
|
payout_created_at: str | None = None
|
|
payout_completed_at: str | None = None
|
|
|
|
|
|
class CreateSbpWithdrawalResponse(BaseModel):
|
|
status_code: int
|
|
withdrawal: SbpWithdrawalResponse
|
|
|
|
|
|
class SbpWithdrawalDetailResponse(BaseModel):
|
|
status_code: int
|
|
withdrawal: SbpWithdrawalResponse
|