from datetime import datetime, date from typing import TYPE_CHECKING from sqlalchemy import ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship from models import BaseModel if TYPE_CHECKING: from models import User class Expense(BaseModel): __tablename__ = 'expenses' id: Mapped[int] = mapped_column(primary_key=True) created_at: Mapped[datetime] = mapped_column(nullable=False) spent_date: Mapped[date] = mapped_column(nullable=False) name: Mapped[str] = mapped_column() comment: Mapped[str] = mapped_column() amount: Mapped[float] = mapped_column() created_by_user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), nullable=False) created_by_user: Mapped["User"] = relationship(foreign_keys=[created_by_user_id])