admin login
This commit is contained in:
31
app/internal/models.py
Normal file
31
app/internal/models.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from sqlmodel import SQLModel, Field
|
||||
|
||||
class Admin(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
username: str = Field(index=True, unique=True)
|
||||
password: str = Field(nullable=False)
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
class AdminCreate(SQLModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
class TokenResponse(SQLModel):
|
||||
access_token: str
|
||||
token_type: str = "bearer"
|
||||
|
||||
class AdminCredential(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
admin_id: int = Field(foreign_key="admin.id")
|
||||
credential_id: bytes = Field(index=True, unique=True)
|
||||
public_key: bytes
|
||||
sign_count: int
|
||||
|
||||
class AdminFIDO2Challenge(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
admin_id: int = Field(foreign_key="admin.id")
|
||||
challenge: str
|
||||
type: str # "registration" or "authentication"
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
Reference in New Issue
Block a user