/
FlysAt
/
DataFoundry
Обзор
Документация
Войти
/
FlysAt
/
DataFoundry
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/src/models/user.py
65 строк
2 KB
AlexanderShmygol
add annotation_executor
03 май 2026, 17:02
03 май 2026, 17:02
9eaf48f
Код
Авторство
О чём код?
import enum from datetime import datetime from sqlalchemy import String, DateTime, func from sqlalchemy.dialects.postgresql import ARRAY from sqlalchemy.orm import Mapped, mapped_column, relationship from src.models.base import Base class RoleEnum(str, enum.Enum): EXECUTOR = "executor" CUSTOMER = "customer" USER = "user" class User(Base): __tablename__ = "user" id: Mapped[int] = mapped_column(primary_key=True, index=True) email: Mapped[str] = mapped_column(String(255), unique=True, index=True, nullable=False) hashed_password: Mapped[str] = mapped_column(String(255), nullable=False) full_name: Mapped[str | None] = mapped_column(String(255), nullable=True) roles: Mapped[list[str]] = mapped_column( ARRAY(String), nullable=False, default=lambda: [RoleEnum.USER.value], server_default="{user}", ) created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), nullable=False, ) created_orders = relationship( "Order", foreign_keys="Order.customer_id", back_populates="customer", ) executing_orders = relationship( "Order", foreign_keys="Order.current_executor_id", back_populates="current_executor", ) assignments_as_executor = relationship( "OrderAssignment", foreign_keys="OrderAssignment.executor_id", back_populates="executor", ) messages = relationship( "Message", back_populates="sender", ) order_annotation_types = relationship( "OrderAnnotationTypeExecutor", back_populates="executor", cascade="all, delete-orphan", )