from typing import Optional

from sqlmodel import Field, SQLModel

from app.models.base import _utcnow


class User(SQLModel, table=True):
    __tablename__ = "users"

    user_id: str = Field(primary_key=True)
    email: str = Field(unique=True)
    name: Optional[str] = None
    photo_url: Optional[str] = None
    language: str = Field(default="en")
    onboarded: int = Field(default=0)
    created_at: str = Field(default_factory=_utcnow)
    updated_at: str = Field(default_factory=_utcnow)
