FastApi

Форк
0
41 строка · 1.5 Кб
1
from datetime import datetime
2

3
from fastapi_users_db_sqlalchemy import SQLAlchemyBaseUserTable
4
from sqlalchemy import (JSON, TIMESTAMP, Boolean, Column, ForeignKey, Integer,
5
                        String, Table)
6

7
from database import Base, metadata
8

9
role = Table(
10
    "role",
11
    metadata,
12
    Column("id", Integer, primary_key=True),
13
    Column("name", String, nullable=False),
14
    Column("permissions", JSON),
15
)
16

17
user = Table(
18
    "user",
19
    metadata,
20
    Column("id", Integer, primary_key=True),
21
    Column("email", String, nullable=False),
22
    Column("username", String, nullable=False),
23
    Column("registered_at", TIMESTAMP, default=datetime.utcnow),
24
    Column("role_id", Integer, ForeignKey(role.c.id)),
25
    Column("hashed_password", String, nullable=False),
26
    Column("is_active", Boolean, default=True, nullable=False),
27
    Column("is_superuser", Boolean, default=False, nullable=False),
28
    Column("is_verified", Boolean, default=False, nullable=False),
29
)
30

31

32
class User(SQLAlchemyBaseUserTable[int], Base):
33
    id = Column(Integer, primary_key=True)
34
    email = Column(String, nullable=False)
35
    username = Column(String, nullable=False)
36
    registered_at = Column(TIMESTAMP, default=datetime.utcnow)
37
    role_id = Column(Integer, ForeignKey(role.c.id))
38
    hashed_password: str = Column(String(length=1024), nullable=False)
39
    is_active: bool = Column(Boolean, default=True, nullable=False)
40
    is_superuser: bool = Column(Boolean, default=False, nullable=False)
41
    is_verified: bool = Column(Boolean, default=False, nullable=False)
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.