Add CRUD operations for Lamassu transactions: implement create, retrieve, and update functions for storing processed Lamassu transactions in the database. Enhance migration script to create the necessary database table and update models to include transaction data structures. Integrate transaction storage into the LamassuTransactionProcessor for improved audit and UI display capabilities.

This commit is contained in:
padreug 2025-06-20 00:49:46 +02:00
parent c38a20b6da
commit dc35cae44e
4 changed files with 218 additions and 3 deletions

View file

@ -102,6 +102,43 @@ class LamassuTransaction(BaseModel):
timestamp: datetime
# Lamassu Transaction Storage Models
class CreateLamassuTransactionData(BaseModel):
lamassu_transaction_id: str
fiat_amount: int
crypto_amount: int
commission_percentage: float
discount: float = 0.0
effective_commission: float
commission_amount_sats: int
base_amount_sats: int
exchange_rate: float
crypto_code: str = "BTC"
fiat_code: str = "GTQ"
device_id: Optional[str] = None
transaction_time: datetime
class StoredLamassuTransaction(BaseModel):
id: str
lamassu_transaction_id: str
fiat_amount: int
crypto_amount: int
commission_percentage: float
discount: float
effective_commission: float
commission_amount_sats: int
base_amount_sats: int
exchange_rate: float
crypto_code: str
fiat_code: str
device_id: Optional[str]
transaction_time: datetime
processed_at: datetime
clients_count: int # Number of clients who received distributions
distributions_total_sats: int # Total sats distributed to clients
# Lamassu Configuration Models
class CreateLamassuConfigData(BaseModel):
host: str