21 lines
797 B
Python
21 lines
797 B
Python
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
|