Refactor code structure for improved readability and maintainability

This commit is contained in:
k1nq
2026-09-16 13:41:55 +05:00
commit 7d0762ef17
27 changed files with 2718 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
import uuid
from datetime import datetime
from decimal import Decimal
from typing import Annotated, Any
from pydantic import BaseModel, ConfigDict, Field, HttpUrl
from app.models import Currency, PaymentStatus
Amount = Annotated[Decimal, Field(gt=0, max_digits=18, decimal_places=2)]
class PaymentCreate(BaseModel):
amount: Amount
currency: Currency
description: str = Field(min_length=1, max_length=500)
metadata: dict[str, Any] = Field(default_factory=dict)
webhook_url: HttpUrl
class PaymentAccepted(BaseModel):
model_config = ConfigDict(from_attributes=True)
payment_id: uuid.UUID = Field(validation_alias="id")
status: PaymentStatus
created_at: datetime
class PaymentDetails(BaseModel):
model_config = ConfigDict(from_attributes=True)
payment_id: uuid.UUID = Field(validation_alias="id")
amount: Decimal
currency: Currency
description: str
metadata: dict[str, Any] = Field(validation_alias="metadata_")
status: PaymentStatus
idempotency_key: str
webhook_url: str
created_at: datetime
processed_at: datetime | None
class PaymentCreatedEvent(BaseModel):
payment_id: uuid.UUID
class PaymentWebhook(BaseModel):
payment_id: uuid.UUID
amount: Decimal
currency: Currency
status: PaymentStatus
processed_at: datetime
metadata: dict[str, Any]