diff --git a/apps/payment/backend/models/__init__.py b/apps/payment/backend/models/__init__.py index b1a6b95..7c4ba62 100644 --- a/apps/payment/backend/models/__init__.py +++ b/apps/payment/backend/models/__init__.py @@ -3,7 +3,13 @@ # from .user_profile import profile_models # # TODO: Add all models to backend_models -backend_models = [] +from backend.services.payment.models import IncomeProfileDoc +from backend.services.project.models import ProjectDoc + +backend_models = [ + IncomeProfileDoc, + ProjectDoc +] # backend_models.extend(code_models) # backend_models.extend(user_models) # backend_models.extend(profile_models) diff --git a/apps/payment/backend/services/payment/models.py b/apps/payment/backend/services/payment/models.py index eebafa7..606668e 100644 --- a/apps/payment/backend/services/payment/models.py +++ b/apps/payment/backend/services/payment/models.py @@ -2,7 +2,10 @@ from typing import List, Dict, Optional from decimal import Decimal from time import time from beanie import Document -from pydantic import BaseModel +from pydantic import BaseModel, validator + +from decimal import Decimal +from bson import Decimal128 from backend.services.payment.constants import PaymentGateway from backend.infra.payment.constants import MoneyCollectionType, PaymentLocation @@ -32,6 +35,12 @@ class CurrencyAmount(BaseModel): amount: Decimal currency: str + @validator("amount", pre=True) + def convert_decimal128(cls, value): + if isinstance(value, Decimal128): + return value.to_decimal() # Convert MongoDB Decimal128 to Python Decimal + return value + class Wallet(BaseModel): payment_methods: List[PaymentMethod]