[add]: Database connection and migrations

This commit is contained in:
VivianDee
2025-03-28 08:38:32 +01:00
parent 3054b7240e
commit 65efe0573a
21 changed files with 431 additions and 19 deletions
+6
View File
@@ -0,0 +1,6 @@
from .customer import Customer
from .account import Account
from .loan import Loan
from .transaction import Transaction
__all__ = ['Customer', 'Account', 'Loan', 'Transaction']
+15
View File
@@ -0,0 +1,15 @@
from datetime import datetime
from app import db
class Account(db.Model):
id = db.Column(db.String(50), primary_key=True)
customer_id = db.Column(db.String(50), db.ForeignKey('customer.id'), 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)
def __repr__(self):
return f'<Account {self.id}>'
+12
View File
@@ -0,0 +1,12 @@
from datetime import datetime
from app import db
class Customer(db.Model):
id = db.Column(db.String(50), primary_key=True)
msisdn = db.Column(db.String(20), unique=True, nullable=False)
country_code = db.Column(db.String(3), nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return f'<Customer {self.id}>'
+16
View File
@@ -0,0 +1,16 @@
from datetime import datetime
from app import db
class Loan(db.Model):
id = db.Column(db.String(50), primary_key=True)
customer_id = db.Column(db.String(50), db.ForeignKey('customer.id'), nullable=False)
account_id = db.Column(db.String(50), db.ForeignKey('account.id'), nullable=False)
product_id = db.Column(db.String(20), nullable=False)
principal_amount = db.Column(db.Float, nullable=False)
status = db.Column(db.String(20), default='pending')
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return f'<Loan {self.id}>'
+12
View File
@@ -0,0 +1,12 @@
from datetime import datetime
from app import db
class Offer(db.Model):
id = db.Column(db.Integer, primary_key=True)
amount = db.Column(db.Float, nullable=False)
interest_rate = db.Column(db.Float, nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return f'<LoanOffer {self.id}>'
+14
View File
@@ -0,0 +1,14 @@
from datetime import datetime
from app import db
class Transaction(db.Model):
id = db.Column(db.String(50), primary_key=True)
account_id = db.Column(db.String(50), db.ForeignKey('account.id'), nullable=False)
type = db.Column(db.String(50), nullable=False)
amount = db.Column(db.Float, nullable=False)
status = db.Column(db.String(20), default='pending')
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
def __repr__(self):
return f'<Transaction {self.id}>'