58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
|
|
from datetime import datetime
|
||
|
|
from typing import Optional
|
||
|
|
|
||
|
|
from pydantic import BaseModel, ConfigDict, EmailStr
|
||
|
|
|
||
|
|
from backend.modules.users.models import RoleName
|
||
|
|
|
||
|
|
|
||
|
|
class RoleBase(BaseModel):
|
||
|
|
name: str
|
||
|
|
description: Optional[str] = None
|
||
|
|
|
||
|
|
|
||
|
|
class RoleOut(RoleBase):
|
||
|
|
model_config = ConfigDict(from_attributes=True)
|
||
|
|
|
||
|
|
id: int
|
||
|
|
created_at: datetime
|
||
|
|
updated_at: datetime
|
||
|
|
|
||
|
|
|
||
|
|
class UserBase(BaseModel):
|
||
|
|
username: str
|
||
|
|
email: Optional[EmailStr] = None
|
||
|
|
role_id: int
|
||
|
|
customer_id: Optional[int] = None
|
||
|
|
is_active: int = 1
|
||
|
|
|
||
|
|
|
||
|
|
class UserCreate(UserBase):
|
||
|
|
password: str
|
||
|
|
|
||
|
|
|
||
|
|
class UserUpdate(BaseModel):
|
||
|
|
email: Optional[EmailStr] = None
|
||
|
|
password: Optional[str] = None
|
||
|
|
role_id: Optional[int] = None
|
||
|
|
customer_id: Optional[int] = None
|
||
|
|
is_active: Optional[int] = None
|
||
|
|
|
||
|
|
|
||
|
|
class UserOut(BaseModel):
|
||
|
|
model_config = ConfigDict(from_attributes=True)
|
||
|
|
|
||
|
|
id: int
|
||
|
|
username: str
|
||
|
|
email: Optional[EmailStr] = None
|
||
|
|
role_id: int
|
||
|
|
customer_id: Optional[int] = None
|
||
|
|
customer_credential_names: list[str] = []
|
||
|
|
role_name: Optional[str] = None
|
||
|
|
customer_name: Optional[str] = None
|
||
|
|
is_active: int
|
||
|
|
last_login_at: Optional[datetime] = None
|
||
|
|
created_at: datetime
|
||
|
|
updated_at: datetime
|
||
|
|
role: Optional[RoleOut] = None
|