fix(payments): make checkout attempts idempotent and reconcilable

This commit is contained in:
2026-09-30 21:14:16 +03:30
parent 77567178ad
commit 1daa755543
9 changed files with 862 additions and 173 deletions

View File

@@ -2,6 +2,7 @@ from typing import Literal, Optional
from ninja import Schema
from datetime import datetime
from uuid import UUID
class DiscountCodeSchema(Schema):
@@ -47,16 +48,22 @@ class CreatePaymentIn(Schema):
discount_code: str | None = None
mobile: str | None = None
email: str | None = None
idempotency_key: UUID | None = None
class CreatePaymentOut(Schema):
start_pay_url: str | None = None
authority: str | None = None
payment_id: int | None = None
idempotency_key: UUID | None = None
status: Literal["initiated", "pending", "paid", "failed", "canceled"]
base_amount: int
discount_amount: int
amount: int
class PaymentDetailOut(Schema):
payment_id: int
event_id: int
ref_id: str | None = None
authority: str | None = None
base_amount: int