[update]: model class methods

This commit is contained in:
VivianDee
2025-03-28 10:11:44 +01:00
parent ad39b1c75c
commit bc8f8e2cdd
6 changed files with 30 additions and 33 deletions
-15
View File
@@ -1,15 +0,0 @@
from app.models import Account
def check_account_settings(account_id, customer_id):
"""
Checks if the account belongs to the customer and if it has existing liens.
"""
account = Account.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"
-7
View File
@@ -1,7 +0,0 @@
from app.models import Customer
def check_customer_eligibility(data):
# Verify customer exists
customer = Customer.query.filter_by(id=data['customerId']).first()
if not customer:
return False, "Customer not found"
-10
View File
@@ -1,10 +0,0 @@
from app.models import Loan
def check_active_loans(data):
active_loans = Loan.query.filter_by(
customer_id=data['customerId'],
status='active'
).count()
if active_loans > 0:
return False, "Customer has active loans"
+9
View File
@@ -22,6 +22,15 @@ class Account(db.Model):
# 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}>'
+8 -1
View File
@@ -11,6 +11,13 @@ class Customer(db.Model):
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
@classmethod
def is_eligible(cls, customer_id):
customer = cls.query.filter_by(id=customer_id).first()
if not customer:
return False, "Customer not found"
return True, "Customer is eligible"
def __repr__(self):
return f'<Customer {self.id}>'
return f'<Customer {self.id}>'
+13
View File
@@ -15,5 +15,18 @@ class Loan(db.Model):
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
@classmethod
def has_active_loans(cls, customer_id):
active_loans = cls.query.filter_by(
customer_id=customer_id,
status='active'
).count()
if active_loans > 0:
return False, "Customer has active loans"
return True, "No active loans"
def __repr__(self):
return f'<Loan {self.id}>'