You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

25 lines
1.1 KiB

from datetime import datetime
from app import db
class Account(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=True, unique=True)
account_type = db.Column(db.String(64))
balance = db.Column(db.Float, default=0.0)
def __repr__(self):
return f'<Account {self.name}>'
class Transaction(db.Model):
id = db.Column(db.Integer, primary_key=True)
amount = db.Column(db.Float)
type = db.Column(db.String(64)) # 'transfer', 'expense', 'income'
date = db.Column(db.DateTime, default=datetime.utcnow)
source_account_id = db.Column(db.Integer, db.ForeignKey('account.id'))
destination_account_id = db.Column(db.Integer, db.ForeignKey('account.id'))
source_account = db.relationship('Account', foreign_keys=[source_account_id], backref=db.backref('source_transactions', lazy=True))
destination_account = db.relationship('Account', foreign_keys=[destination_account_id], backref=db.backref('destination_transactions', lazy=True))
concept = db.Column(db.String(128))
def __repr__(self):
return f'<Transaction {self.type} {self.amount}>'