Files
digifi-BankToProductCore/app/models/account.py
T
2025-03-28 10:11:44 +01:00

36 lines
1.2 KiB
Python

from datetime import datetime
from app import db
class Account(db.Model):
__tablename__ = 'accounts'
__table_args__ = {'schema': 'flask_app'}
id = db.Column(db.String(50), primary_key=True)
customer_id = db.Column(db.String(50), nullable=False)
account_type = db.Column(db.String(50))
status = db.Column(db.String(20), default='active')
lien_amount = db.Column(db.Float, default=0.0)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
# Database relationship
# customer = db.relationship(
# 'Customer',
# primaryjoin='Account.customer_id == Customer.id',
# backref='accounts',
# foreign_keys=[customer_id],
# viewonly=True
# )
@classmethod
def is_valid_account(cls, account_id, customer_id):
account = cls.query.filter_by(id=account_id, customer_id=customer_id).first()
if not account:
return False, "Account not found or doesn't belong to customer"
if account.lien_amount > 0:
return False, "Account has an existing lien"
return True, "Account is valid"
def __repr__(self):
return f'<Account {self.id}>'