29 lines
855 B
Python
29 lines
855 B
Python
import enum
|
|
|
|
from sqlalchemy import String, Enum
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
from .model import Model
|
|
|
|
|
|
class UserRole(enum.Enum):
|
|
GUEST = "Гость"
|
|
STUDENT = "Студент"
|
|
TEACHER = "Преподаватель"
|
|
DEAN = "Декан"
|
|
RECTOR = "Ректор"
|
|
ADMIN = "Админ"
|
|
|
|
|
|
class User(Model):
|
|
email: Mapped[str] = mapped_column(String(50), unique=True, nullable=False)
|
|
password: Mapped[str] = mapped_column(String(256), nullable=False)
|
|
name: Mapped[str] = mapped_column(String(50), nullable=False)
|
|
surname: Mapped[str] = mapped_column(String(50), nullable=False)
|
|
patronymic: Mapped[str | None] = mapped_column(
|
|
String(50), nullable=True, default=None
|
|
)
|
|
role: Mapped[UserRole] = mapped_column(
|
|
Enum(UserRole), nullable=False, default=UserRole.GUEST
|
|
)
|