Портфолио: Рефакторинг кода

This commit is contained in:
Kirill Samoylenkov 2025-08-22 21:11:08 +07:00
parent f6a2c1fa30
commit 5c18e22b80
31 changed files with 447 additions and 283 deletions

View file

@ -3,4 +3,3 @@ __all__ = ["Base", "News", "Users"]
from .base import Base
from .news import News
from .user import Users

View file

@ -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()
)

View file

@ -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
)

View file

@ -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
)