from datetime import datetime, timezone from typing import Optional from sqlmodel import SQLModel, Field, Column, Integer, String, Boolean, DateTime, ForeignKey class User(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) email: str = Field(sa_column=Column(String(length=255), unique=True)) hashed_password: Optional[str] = Field(default=None) is_active: bool = Field(default=True) created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) class RefreshToken(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) user_id: int = Field(foreign_key="user.id") token: str created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) expires_at: datetime