feat: add withdraw

This commit is contained in:
2026-06-21 14:16:20 +03:00
parent 8f60637e8d
commit 56841b83ce
32 changed files with 1291 additions and 44 deletions

View File

@@ -0,0 +1,52 @@
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