38 lines
906 B
Python
38 lines
906 B
Python
import datetime
|
|
from enum import Enum
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
from pydantic import EmailStr, Field
|
|
|
|
from api.schemas.base import Base
|
|
|
|
|
|
# Модель для хранения информации из запроса
|
|
|
|
|
|
class Role(Enum):
|
|
OWNER = "OWNER"
|
|
ADMIN = "ADMIN"
|
|
EDITOR = "EDITOR"
|
|
VIEWER = "VIEWER"
|
|
|
|
|
|
class Status(Enum):
|
|
ACTIVE = "ACTIVE"
|
|
DISABLED = "DISABLED"
|
|
BLOCKED = "BLOCKED"
|
|
DELETED = "DELETED"
|
|
|
|
|
|
class User(Base):
|
|
id: Optional[int] = None
|
|
name: str = Field(..., max_length=100)
|
|
login: str = Field(..., max_length=100)
|
|
email: Optional[EmailStr] = Field(None, max_length=100) # Электронная почта (может быть None)
|
|
bind_tenant_id: Optional[str] = Field(None, max_length=40)
|
|
role: Role
|
|
meta: dict
|
|
creator_id: Optional[int] = None
|
|
created_at: datetime
|
|
status: Status
|