from sqlalchemy import String, Integer, Float, func from sqlalchemy.orm import Mapped, mapped_column from datetime import datetime from app.database import Base class Settings(Base): __tablename__ = "settings" id: Mapped[int] = mapped_column(primary_key=True, index=True) pin_hash: Mapped[str] = mapped_column(String(255), nullable=False) accent_color: Mapped[str] = mapped_column(String(20), default="cyan") upcoming_days: Mapped[int] = mapped_column(Integer, default=7) preferred_name: Mapped[str | None] = mapped_column(String(100), nullable=True, default=None) weather_city: Mapped[str | None] = mapped_column(String(100), nullable=True, default=None) weather_lat: Mapped[float | None] = mapped_column(Float, nullable=True, default=None) weather_lon: Mapped[float | None] = mapped_column(Float, nullable=True, default=None) first_day_of_week: Mapped[int] = mapped_column(Integer, default=0) # 0=Sunday, 1=Monday created_at: Mapped[datetime] = mapped_column(default=func.now()) updated_at: Mapped[datetime] = mapped_column(default=func.now(), onupdate=func.now())