#! /usr/bin/env python3 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, DateTime, ForeignKey from sqlalchemy.orm import relationship, backref from helper import format_amount Base = declarative_base() class Transaction(Base): __tablename__ = "Transaction" id = Column(Integer, primary_key=True) name = Column(String) date = Column(DateTime) iban = Column(String) amount = Column(Integer) description = Column(String) def is_positive(self): return self.amount > 0 def pretty_amount(self): return format_amount(self.amount) def get_date(self, format): if format == "iso": return self.date.strftime("%Y-%m-%d") elif format == "de": return self.date.strftime("%d.%m.%Y") else: return "UNKNOWN FORMAT" class Tag(Base): __tablename__ = "Tag" name = Column(String, primary_key=True) description = Column(String) transactions = relationship("Transaction", backref="tags") def __repr__(self): return f""