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()