[add]: Database connection and migrations
This commit is contained in:
@@ -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']
|
||||
@@ -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}>'
|
||||
|
||||
@@ -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}>'
|
||||
@@ -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}>'
|
||||
@@ -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}>'
|
||||
@@ -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}>'
|
||||
Reference in New Issue
Block a user