from datetime import datetime from sqlalchemy import Integer, String, Float, DateTime, ForeignKey from sqlalchemy.orm import Mapped, mapped_column from database import Base class Counter(Base): __tablename__ = "counter" id: Mapped[int] = mapped_column(Integer, primary_key=True, default=1) value: Mapped[int] = mapped_column(Integer, default=0) class User(Base): __tablename__ = "users" id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) email: Mapped[str] = mapped_column(String(255), unique=True, nullable=False, index=True) hashed_password: Mapped[str] = mapped_column(String(255), nullable=False) class SumRecord(Base): __tablename__ = "sum_records" id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) user_id: Mapped[int] = mapped_column(Integer, ForeignKey("users.id"), nullable=False, index=True) a: Mapped[float] = mapped_column(Float, nullable=False) b: Mapped[float] = mapped_column(Float, nullable=False) result: Mapped[float] = mapped_column(Float, nullable=False) created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow) class CounterRecord(Base): __tablename__ = "counter_records" id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) user_id: Mapped[int] = mapped_column(Integer, ForeignKey("users.id"), nullable=False, index=True) value_before: Mapped[int] = mapped_column(Integer, nullable=False) value_after: Mapped[int] = mapped_column(Integer, nullable=False) created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)