Files
sso/backend/schemas.py
2026-01-25 14:36:01 +01:00

64 lines
1.3 KiB
Python

from pydantic import BaseModel, EmailStr
from typing import List, Optional
from datetime import datetime
# User Schemas
class UserBase(BaseModel):
username: str
email: EmailStr
is_active: Optional[bool] = True
is_admin: Optional[bool] = False
class UserCreate(UserBase):
password: str
class UserUpdate(BaseModel):
username: Optional[str] = None
email: Optional[EmailStr] = None
password: Optional[str] = None
is_active: Optional[bool] = None
is_admin: Optional[bool] = None
class UserOut(UserBase):
id: int
created_at: datetime
updated_at: datetime
class Config:
orm_mode = True
# Application Schemas
class ApplicationBase(BaseModel):
name: str
url: str
class ApplicationCreate(ApplicationBase):
pass
class ApplicationOut(ApplicationBase):
id: int
api_key: str
created_at: datetime
class Config:
orm_mode = True
# Token Schema
class Token(BaseModel):
access_token: str
token_type: str
class TokenData(BaseModel):
username: Optional[str] = None
# SSO Verification Schema
class SSOVerifyRequest(BaseModel):
username: str
password: str
api_key: str
class SSOVerifyResponse(BaseModel):
authorized: bool
message: str
user: Optional[UserOut] = None