Initial commit: Wallet App - FastAPI backend with React frontend for personal finance tracking

This commit is contained in:
RemTools
2026-09-04 08:37:14 +00:00 Unverified
commit d7b52f24d2
39572 changed files with 1617122 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
"""Database models for the wallet app."""
from datetime import datetime
from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey, Enum
from sqlalchemy.orm import relationship
from app.database import Base
import enum
class EntryType(str, enum.Enum):
"""Type of wallet entry."""
INCOME = "income"
EXPENSE = "expense"
class User(Base):
"""User model for authentication."""
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
username = Column(String, unique=True, index=True)
email = Column(String, unique=True, index=True)
hashed_password = Column(String)
created_at = Column(DateTime, default=datetime.utcnow)
# Relationships
wallet_entries = relationship("WalletEntry", back_populates="user", cascade="all, delete-orphan")
class WalletEntry(Base):
"""Wallet entry model for tracking income and expenses."""
__tablename__ = "wallet_entries"
id = Column(Integer, primary_key=True, index=True)
user_id = Column(Integer, ForeignKey("users.id"), index=True)
amount = Column(Float)
entry_type = Column(Enum(EntryType), index=True)
description = Column(String)
created_at = Column(DateTime, default=datetime.utcnow, index=True)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
# Relationships
user = relationship("User", back_populates="wallet_entries")