00 Add currency conversion utilities and update models for GTQ handling: Introduced currency conversion functions for GTQ and centavos, updated API and database models to handle GTQ amounts directly, and modified API endpoints to streamline deposit and balance summary responses. Adjusted frontend to reflect changes in currency representation, ensuring consistency across the application.
This commit is contained in:
parent
7b40fcef21
commit
aa71321c84
5 changed files with 127 additions and 30 deletions
38
models.py
38
models.py
|
|
@ -34,8 +34,30 @@ class UpdateDcaClientData(BaseModel):
|
|||
status: Optional[str] = None
|
||||
|
||||
|
||||
# Deposit Models
|
||||
# API Models for Deposits (Frontend <-> Backend communication)
|
||||
class CreateDepositAPI(BaseModel):
|
||||
"""API model - frontend sends GTQ amounts"""
|
||||
client_id: str
|
||||
amount_gtq: float # Amount in GTQ (e.g., 150.75)
|
||||
currency: str = "GTQ"
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
class DepositAPI(BaseModel):
|
||||
"""API model - backend returns GTQ amounts"""
|
||||
id: str
|
||||
client_id: str
|
||||
amount_gtq: float # Amount in GTQ (e.g., 150.75)
|
||||
currency: str
|
||||
status: str # 'pending' or 'confirmed'
|
||||
notes: Optional[str]
|
||||
created_at: datetime
|
||||
confirmed_at: Optional[datetime]
|
||||
|
||||
|
||||
# Database Models for Deposits (Internal storage in centavos)
|
||||
class CreateDepositData(BaseModel):
|
||||
"""Internal model - database stores centavos"""
|
||||
client_id: str
|
||||
amount: int # Amount in smallest currency unit (centavos for GTQ)
|
||||
currency: str = "GTQ"
|
||||
|
|
@ -43,6 +65,7 @@ class CreateDepositData(BaseModel):
|
|||
|
||||
|
||||
class DcaDeposit(BaseModel):
|
||||
"""Internal model - database stores centavos"""
|
||||
id: str
|
||||
client_id: str
|
||||
amount: int
|
||||
|
|
@ -84,8 +107,19 @@ class DcaPayment(BaseModel):
|
|||
transaction_time: Optional[datetime] = None # Original ATM transaction time
|
||||
|
||||
|
||||
# Client Balance Summary
|
||||
# API Models for Client Balance Summary
|
||||
class ClientBalanceSummaryAPI(BaseModel):
|
||||
"""API model - returns GTQ amounts"""
|
||||
client_id: str
|
||||
total_deposits_gtq: float # Total confirmed deposits in GTQ
|
||||
total_payments_gtq: float # Total payments made in GTQ
|
||||
remaining_balance_gtq: float # Available balance for DCA in GTQ
|
||||
currency: str
|
||||
|
||||
|
||||
# Internal Models for Client Balance Summary
|
||||
class ClientBalanceSummary(BaseModel):
|
||||
"""Internal model - stores centavos"""
|
||||
client_id: str
|
||||
total_deposits: int # Total confirmed deposits
|
||||
total_payments: int # Total payments made
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue