Update app/models.py

This commit is contained in:
Cameron 2025-12-10 22:57:44 +00:00
parent 9962b54521
commit 4a8e63eec1

View file

@ -1,10 +1,11 @@
from sqlalchemy import Column, Integer, String, Float, Date
from sqlalchemy import Column, Integer, String, Float, Date, ForeignKey
from sqlalchemy.orm import relationship
from app.database import Base
class Customer(Base):
__tablename__ = "customers"
customer_id = Column(String(20), primary_key=True, index=True) # IDs are strings now
customer_id = Column(String(20), primary_key=True, index=True)
full_name = Column(String(100), index=True)
email = Column(String(100), unique=True)
phone = Column(String(50))
@ -22,13 +23,35 @@ class Customer(Base):
credit_score = Column(Integer)
preferred_contact_method = Column(String(20))
accounts = relationship("Account", back_populates="customer")
class Account(Base):
__tablename__ = "accounts"
account_id = Column(String(20), primary_key=True, index=True) # IDs are strings now
account_id = Column(String(20), primary_key=True, index=True)
account_number = Column(String(20), unique=True, index=True)
customer_id = Column(String(20)) # matches Customer.customer_id
customer_id = Column(String(20), ForeignKey("customers.customer_id"))
account_type = Column(String(20))
open_date = Column(Date)
balance = Column(Float)
branch_id = Column(Integer)
customer = relationship("Customer", back_populates="accounts")
transactions = relationship("Transaction", back_populates="account")
class Transaction(Base):
__tablename__ = "transactions"
transaction_id = Column(String(30), primary_key=True, index=True)
account_id = Column(String(20), ForeignKey("accounts.account_id"))
branch_id = Column(Integer)
transaction_type = Column(String(50))
amount = Column(Float)
date = Column(Date)
balance_after = Column(Float)
vendor = Column(String(100))
transaction_location = Column(String(100))
account = relationship("Account", back_populates="transactions")