Портфолио: Рефакторинг кода
This commit is contained in:
parent
f6a2c1fa30
commit
5c18e22b80
31 changed files with 447 additions and 283 deletions
|
|
@ -3,4 +3,3 @@ __all__ = ["Base", "News", "Users"]
|
|||
from .base import Base
|
||||
from .news import News
|
||||
from .user import Users
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,15 @@ from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|||
|
||||
class Base(DeclarativeBase):
|
||||
"""
|
||||
Основной шаблон для схем в базе данных.
|
||||
Основной шаблон для схем в базе данных.
|
||||
"""
|
||||
|
||||
# Информация о том, когда была добавлена строка в БД
|
||||
added: Mapped[DateTime] = mapped_column(DateTime, default=func.now())
|
||||
added: Mapped[DateTime] = mapped_column(
|
||||
DateTime, default=func.now()
|
||||
)
|
||||
|
||||
# Информация о том, когда последний раз была обновлена строчка
|
||||
updated: Mapped[DateTime] = mapped_column(DateTime, default=func.now(), onupdate=func.now())
|
||||
|
||||
updated: Mapped[DateTime] = mapped_column(
|
||||
DateTime, default=func.now(), onupdate=func.now()
|
||||
)
|
||||
|
|
|
|||
|
|
@ -8,21 +8,27 @@ from .base import Base
|
|||
|
||||
class News(Base):
|
||||
"""
|
||||
Схема для хранения информации о предложенных новостях в БД.
|
||||
Схема для хранения информации о предложенных новостях в БД.
|
||||
"""
|
||||
|
||||
__tablename__ = "news"
|
||||
|
||||
|
||||
# Уникальный ID новости
|
||||
news_id: Mapped[int] = mapped_column(primary_key=True, unique=True, autoincrement=True)
|
||||
|
||||
news_id: Mapped[int] = mapped_column(
|
||||
primary_key=True, unique=True, autoincrement=True
|
||||
)
|
||||
|
||||
# Информация о пользователе, который предложил новость
|
||||
tg_id: Mapped[int] = mapped_column(nullable=False)
|
||||
tg_username: Mapped[str] = mapped_column(String(32), nullable=True)
|
||||
tg_username: Mapped[str] = mapped_column(
|
||||
String(32), nullable=True
|
||||
)
|
||||
|
||||
# Текст новости и контакты для связи
|
||||
text: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
contact: Mapped[str] = mapped_column(Text, nullable=True)
|
||||
|
||||
# Статус новости
|
||||
status: Mapped[str] = mapped_column(String(3), default=NewsStatus.UNSEEN.value, nullable=False)
|
||||
|
||||
status: Mapped[str] = mapped_column(
|
||||
String(3), default=NewsStatus.UNSEEN.value, nullable=False
|
||||
)
|
||||
|
|
|
|||
|
|
@ -8,17 +8,23 @@ from Mousey.Misc import UserRole
|
|||
|
||||
class Users(Base):
|
||||
"""
|
||||
Схема для хранения информации о пользователях бота в БД.
|
||||
Схема для хранения информации о пользователях бота в БД.
|
||||
"""
|
||||
|
||||
__tablename__ = "user"
|
||||
|
||||
|
||||
# Уникальный ID пользователя (Telegram ID)
|
||||
tg_id: Mapped[int] = mapped_column(primary_key=True, unique=True, autoincrement=False)
|
||||
tg_id: Mapped[int] = mapped_column(
|
||||
primary_key=True, unique=True, autoincrement=False
|
||||
)
|
||||
|
||||
# Статистика по новостям у пользователя
|
||||
all_news: Mapped[int] = mapped_column(default=0, nullable=False)
|
||||
unseen_news: Mapped[int] = mapped_column(default=0, nullable=False)
|
||||
|
||||
# Роль пользователя для бота
|
||||
role: Mapped[str] = mapped_column(String(16), default=UserRole.USER.value, nullable=False)
|
||||
unseen_news: Mapped[int] = mapped_column(
|
||||
default=0, nullable=False
|
||||
)
|
||||
|
||||
# Роль пользователя для бота
|
||||
role: Mapped[str] = mapped_column(
|
||||
String(16), default=UserRole.USER.value, nullable=False
|
||||
)
|
||||
|
|
|
|||
Reference in a new issue