ref: master
core/types/balance.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from sqlalchemy import Column, Integer, DateTime, Numeric, ForeignKey from core.database import Base from datetime import datetime as dt class Balance(Base): __tablename__ = "balances" id = Column(Integer, primary_key=True) value = Column(Numeric(10, 2), default=0.0, nullable=False) reserved = Column(Numeric(10, 2), default=0.0, nullable=False) product_id = Column(Integer, ForeignKey('products.id'), nullable=False) created_at = Column(DateTime, nullable=False) updated_at = Column(DateTime, nullable=False) def __init__(self, value, reserved, product_id): self.value = value self.reserved = reserved self.product_id = product_id def rollback_reserved(self): self.value += self.reserved self.reserved = 0.0 session.commit() def to_json(self): return { "reserved": float(self.reserved), "value": float(self.value), "updated_at": self.updated_at.__str__() } |