feat: balance and reward

This commit is contained in:
2024-02-24 15:38:48 +03:00
parent c8a234e27b
commit 7e853c48e7
27 changed files with 234 additions and 66 deletions

View File

@@ -0,0 +1,29 @@
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()