Add chase accounts + chase csv upload

This commit is contained in:
YOUNG
2026-03-09 16:05:38 -05:00
parent ab85502415
commit 4802d9a6d3
9 changed files with 567 additions and 18 deletions

View File

@@ -1,11 +1,24 @@
from datetime import date, datetime
from sqlalchemy import Date, Numeric, Text, func
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy import Date, ForeignKey, Numeric, Text, func
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.database import Base
class FinanceAccount(Base):
__tablename__ = "finance_accounts"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(Text, unique=True)
account_type: Mapped[str] = mapped_column(Text)
created_at: Mapped[datetime] = mapped_column(server_default=func.now())
transactions: Mapped[list["FinanceTransaction"]] = relationship(
back_populates="account"
)
class FinanceTransaction(Base):
__tablename__ = "finance_transactions"
@@ -14,8 +27,15 @@ class FinanceTransaction(Base):
amount: Mapped[float] = mapped_column(Numeric(12, 2))
category: Mapped[str] = mapped_column(Text)
description: Mapped[str | None] = mapped_column(Text, nullable=True)
account_id: Mapped[int | None] = mapped_column(
ForeignKey("finance_accounts.id", ondelete="SET NULL"), nullable=True
)
created_at: Mapped[datetime] = mapped_column(server_default=func.now())
account: Mapped["FinanceAccount | None"] = relationship(
back_populates="transactions"
)
class FinanceSnapshot(Base):
__tablename__ = "finance_snapshots"