30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import database
 | 
						|
from ..schemas.requests import *
 | 
						|
from ..schemas.responses import *
 | 
						|
from ..schemas.entities import *
 | 
						|
 | 
						|
 | 
						|
def get_balance_transactions(data: dict):
 | 
						|
    items_per_page = 5
 | 
						|
    request = GetBalanceTransactionsRequest.model_validate(data)
 | 
						|
    page = max([request.page - 1, 0])
 | 
						|
    query = (database.BalanceTransaction.query
 | 
						|
             .filter(database.BalanceTransaction.user_id == request.user_id)
 | 
						|
             .order_by(database.BalanceTransaction.created_at.desc())
 | 
						|
             .offset(items_per_page * page)
 | 
						|
             .limit(items_per_page)
 | 
						|
             .all())
 | 
						|
    balance_transactions = [BalanceTransaction.model_validate(balance_transaction) for balance_transaction in query]
 | 
						|
    response = GetBalanceTransactionsResponse(balance_transactions=balance_transactions)
 | 
						|
    return response.to_dict()
 | 
						|
 | 
						|
 | 
						|
def get_balance_info(data: dict):
 | 
						|
    request = GetBalanceInfoRequest.model_validate(data)
 | 
						|
    balance = (database.User.query
 | 
						|
               .filter_by(id=request.user_id)
 | 
						|
               .with_entities(database.User.balance)
 | 
						|
               .scalar())
 | 
						|
    response = GetBalanceInfoResponse(balance=balance)
 | 
						|
    return response.to_dict()
 |