first commit
This commit is contained in:
71
app/schemas/admin.py
Normal file
71
app/schemas/admin.py
Normal file
@@ -0,0 +1,71 @@
|
||||
from pydantic import BaseModel, EmailStr
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
|
||||
# 사용자 관리
|
||||
class UserCreate(BaseModel):
|
||||
username: str
|
||||
email: EmailStr
|
||||
password: str
|
||||
full_name: Optional[str] = None
|
||||
role: str = "user" # admin or user
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
email: Optional[EmailStr] = None
|
||||
password: Optional[str] = None
|
||||
full_name: Optional[str] = None
|
||||
role: Optional[str] = None
|
||||
is_active: Optional[bool] = None
|
||||
|
||||
class UserInfo(BaseModel):
|
||||
id: int
|
||||
username: str
|
||||
email: str
|
||||
full_name: Optional[str]
|
||||
role: str
|
||||
is_active: bool
|
||||
created_at: datetime
|
||||
last_login: Optional[datetime]
|
||||
|
||||
class UserListResponse(BaseModel):
|
||||
total: int
|
||||
users: List[UserInfo]
|
||||
|
||||
# VM 접근 권한 관리
|
||||
class VMAccessCreate(BaseModel):
|
||||
user_id: int
|
||||
vm_id: int
|
||||
node: str
|
||||
static_ip: Optional[str] = None
|
||||
rdp_username: Optional[str] = None
|
||||
rdp_password: Optional[str] = None
|
||||
rdp_port: int = 3389
|
||||
|
||||
class VMAccessUpdate(BaseModel):
|
||||
static_ip: Optional[str] = None
|
||||
rdp_username: Optional[str] = None
|
||||
rdp_password: Optional[str] = None
|
||||
rdp_port: Optional[int] = None
|
||||
is_active: Optional[bool] = None
|
||||
|
||||
class VMAccessInfo(BaseModel):
|
||||
id: int
|
||||
user_id: int
|
||||
username: str # 조인해서 가져옴
|
||||
vm_id: int
|
||||
node: str
|
||||
vm_name: Optional[str]
|
||||
static_ip: Optional[str]
|
||||
rdp_username: Optional[str]
|
||||
rdp_port: int
|
||||
is_active: bool
|
||||
created_at: datetime
|
||||
|
||||
class VMAccessListResponse(BaseModel):
|
||||
total: int
|
||||
accesses: List[VMAccessInfo]
|
||||
|
||||
# 공통 응답
|
||||
class AdminResponse(BaseModel):
|
||||
success: bool
|
||||
message: str
|
||||
Reference in New Issue
Block a user