[Plugin] balance: Enhanced the model by adding serialization members
This commit is contained in:
parent
36c4027c5d
commit
d439cd93c8
|
@ -1,2 +1,3 @@
|
|||
# Migrate code style to Black
|
||||
41e60425a96eeddb45f3a9f9bfc5ef491ce8e071
|
||||
36c4027c5dd1c631bf6ca84890b6ad9c916e1888
|
||||
|
|
|
@ -8,15 +8,33 @@ from flaschengeist.models import ModelSerializeMixin, UtcDateTime
|
|||
|
||||
class Transaction(db.Model, ModelSerializeMixin):
|
||||
__tablename__ = "balance_transaction"
|
||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
||||
time: datetime = db.Column(UtcDateTime, nullable=False, default=datetime.now(tz=timezone.utc))
|
||||
amount: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False), nullable=False)
|
||||
|
||||
# Dummy properties used for JSON serialization (userid instead of full user)
|
||||
sender_id: str = ""
|
||||
receiver_id: str = ""
|
||||
author_id: str = ""
|
||||
|
||||
# Protected foreign key properties
|
||||
_receiver_id = db.Column("receiver_id", db.Integer, db.ForeignKey("user.id"))
|
||||
_sender_id = db.Column("sender_id", db.Integer, db.ForeignKey("user.id"))
|
||||
_author_id = db.Column("author_id", db.Integer, db.ForeignKey("user.id"), nullable=False)
|
||||
|
||||
sender: User = db.relationship("User", foreign_keys=[_sender_id])
|
||||
receiver: User = db.relationship("User", foreign_keys=[_receiver_id])
|
||||
author: User = db.relationship("User", foreign_keys=[_author_id])
|
||||
# Not exported relationships just in backend only
|
||||
sender_: User = db.relationship("User", foreign_keys=[_sender_id])
|
||||
receiver_: User = db.relationship("User", foreign_keys=[_receiver_id])
|
||||
author_: User = db.relationship("User", foreign_keys=[_author_id])
|
||||
|
||||
_id = db.Column("id", db.Integer, primary_key=True)
|
||||
@property
|
||||
def sender_id(self):
|
||||
return self.sender_.userid
|
||||
|
||||
@property
|
||||
def receiver_id(self):
|
||||
return self.receiver_.userid
|
||||
|
||||
@property
|
||||
def author_id(self):
|
||||
return self.author_.userid
|
||||
|
|
Loading…
Reference in New Issue