Spaces:
Sleeping
Sleeping
File size: 868 Bytes
f113aa5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from sqlmodel import SQLModel, Field, Relationship
from typing import Optional
import uuid
from datetime import datetime
from sqlalchemy import Column, DateTime, Boolean, String, ForeignKey
class RefreshToken(SQLModel, table=True):
id: Optional[uuid.UUID] = Field(default_factory=uuid.uuid4, primary_key=True)
# Use a plain sa_column without `index=True` (SQLModel does not allow index=True when sa_column is provided)
token_hash: str = Field(sa_column=Column(String(length=128)))
user_id: Optional[uuid.UUID] = Field(foreign_key="user.id")
revoked: bool = Field(default=False, sa_column=Column(Boolean, default=False))
created_at: datetime = Field(sa_column=Column(DateTime, default=datetime.utcnow))
expires_at: datetime = Field(sa_column=Column(DateTime))
# Relationship back to user is optional and not required for our use-case
|