Download models.py from smlflg/FireTracker: direct link, hf CLI and curl.
- Browser
- Download file 2 kB
-
https://huggingface.co/smlflg/FireTracker/resolve/main/models.py
- Command line
-
hf download hf://smlflg/FireTracker/models.py
-
curl -L -o models.py https://huggingface.co/smlflg/FireTracker/resolve/main/models.py
2 kB
| from sqlalchemy import Column, Integer, String, Float, Boolean, DateTime, ForeignKey, Date | |
| from sqlalchemy.orm import relationship | |
| from database import Base | |
| from datetime import datetime, date | |
| class UserProfile(Base): | |
| __tablename__ = "user_profiles" | |
| id = Column(Integer, primary_key=True) | |
| name = Column(String, default="Default") | |
| monthly_income = Column(Float, default=0) | |
| monthly_expenses = Column(Float, default=0) | |
| birth_year = Column(Integer, default=2000) | |
| target_retirement_age = Column(Integer, default=67) | |
| swr = Column(Float, default=0.04) # Safe Withdrawal Rate | |
| expected_return = Column(Float, default=0.07) # 7% nominal | |
| inflation = Column(Float, default=0.02) # 2% | |
| created_at = Column(DateTime, default=datetime.utcnow) | |
| updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
| class Asset(Base): | |
| __tablename__ = "assets" | |
| id = Column(Integer, primary_key=True) | |
| name = Column(String, nullable=False) # "Depot1 - Vanguard FTSE", "Wohnung Mannheim" | |
| asset_type = Column(String, nullable=False) # depot, immobilie, cash, crypto, pension, other | |
| current_value = Column(Float, default=0) | |
| monthly_contribution = Column(Float, default=0) | |
| expected_return_override = Column(Float, nullable=True) # optional per-asset return | |
| notes = Column(String, default="") | |
| icon = Column(String, default="") # emoji or icon class | |
| created_at = Column(DateTime, default=datetime.utcnow) | |
| updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
| snapshots = relationship("Snapshot", back_populates="asset", cascade="all, delete-orphan") | |
| class Snapshot(Base): | |
| __tablename__ = "snapshots" | |
| id = Column(Integer, primary_key=True) | |
| asset_id = Column(Integer, ForeignKey("assets.id"), nullable=False) | |
| date = Column(Date, default=date.today) | |
| value = Column(Float, nullable=False) | |
| asset = relationship("Asset", back_populates="snapshots") | |