26 lines
759 B
Python
26 lines
759 B
Python
from sqlalchemy import select
|
|
from sqlalchemy.orm import Session
|
|
|
|
from dibbler.models import Transaction, TransactionType
|
|
from dibbler.models.Transaction import DEFAULT_INTEREST_RATE_PERCENTAGE
|
|
|
|
|
|
# TODO: add until transaction parameter
|
|
# TODO: add until datetime parameter
|
|
|
|
|
|
def current_interest(sql_session: Session) -> int:
|
|
result = sql_session.scalars(
|
|
select(Transaction)
|
|
.where(Transaction.type_ == TransactionType.ADJUST_INTEREST)
|
|
.order_by(Transaction.time.desc())
|
|
.limit(1)
|
|
).one_or_none()
|
|
|
|
if result is None:
|
|
return DEFAULT_INTEREST_RATE_PERCENTAGE
|
|
elif result.interest_rate_percent is None:
|
|
return DEFAULT_INTEREST_RATE_PERCENTAGE
|
|
else:
|
|
return result.interest_rate_percent
|