Sobes.tech
Middle
47

Реализирайте метода increment за модела SQLAlchemy: увеличете баланса на потребителя с diff с проверка на максималния баланс. Върнете True, ако балансът се е променил, иначе False.

Компаниите бяха попитани
Сбер.clouds

Отговор от AI

sobes.tech AI

python from sqlalchemy import Column, Integer from sqlalchemy.orm import Session

class User: id = Column(Integer, primary_key=True) balance = Column(Integer)

def increment(self, session: Session, diff: int, max_balance: int) -> bool:
    new_balance = self.balance + diff
    if new_balance > max_balance:
        return False
    self.balance = new_balance
    session.add(self)
    session.commit()
    return True

В этом методе мы сначала вычисляем потенциальный новый баланс. Если он превышает максимальный, возвращаем False. Иначе обновляем баланс, сохраняем изменения в сессии и возвращаем True.