[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
|
# 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):
|
def __repr__(self):
|
||||||
return f'<Account {self.id}>'
|
return f'<Account {self.id}>'
|
||||||
|
|
||||||
@@ -11,6 +11,13 @@ class Customer(db.Model):
|
|||||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||||
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=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):
|
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)
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||||
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=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):
|
def __repr__(self):
|
||||||
return f'<Loan {self.id}>'
|
return f'<Loan {self.id}>'
|
||||||
Reference in New Issue
Block a user