/
misha_dev
/
game_guild_backend
Обзор
Документация
Войти
/
misha_dev
/
game_guild_backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
fastapi-application/core/models/user.py
34 строки
1 KB
misha-dev
feat: correct api, cart logic
25 фев 2025, 20:39
25 фев 2025, 20:39
10c714a
Код
Авторство
О чём код?
from sqlalchemy import Enum, String, DateTime from sqlalchemy.orm import Mapped, relationship from sqlalchemy.sql import func from sqlalchemy.orm import mapped_column from typing import TYPE_CHECKING from .base import Base from .mixins.int_id_pk import IntIdPkMixin from datetime import datetime from enum import Enum as PyEnum if TYPE_CHECKING: from .order import Order from .cart import Cart class UserRole(str, PyEnum): USER = "user" ADMIN = "admin" class User(IntIdPkMixin, Base): username: Mapped[str | None] = mapped_column(String(50), nullable=True) email: Mapped[str] = mapped_column(String(100), unique=True, nullable=False) password_hash: Mapped[str] = mapped_column(String(255), nullable=False) role: Mapped[UserRole] = mapped_column(Enum(UserRole), default=UserRole.USER) created_at: Mapped[datetime] = mapped_column( DateTime, default=func.now(), nullable=False ) orders: Mapped[list["Order"]] = relationship(back_populates="user") cart: Mapped["Cart"] = relationship(back_populates="user", cascade="all, delete")