58 lines
1.3 KiB
Python
Raw Normal View History

2025-12-10 12:02:17 +08:00
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