[update]: model class methods
This commit is contained in:
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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}>'
|
||||
|
||||
@@ -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}>'
|
||||
|
||||
|
||||
@@ -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}>'
|
||||
Reference in New Issue
Block a user