Skip to content

v1.0.8

Choose a tag to compare

@geekcodev geekcodev released this 18 Aug 19:26
· 16 commits to main since this release
a0563ec

v1.0.8 — Реестр пользователей max_users, max_bot_chats

Новое

  • Реестр пользователей (max_users): новая миграция и модель MaxUser с полным набором полей
    UserWithPhoto — user_id (PK), first_name, last_name, username, is_bot, last_activity_time,
    name, description, avatar_url, full_avatar_url. Все колонки с ->comment() на русском.
  • Listener PersistBotChatListener при chats.enabled=true автоматически upsert запись в max_users
    при получении bot_added/bot_started/bot_stopped/bot_removed с объектом user.
  • Связь BotChat → MaxUser через user_id (Eloquent belongsTo, без FK-constraint — гибко при отсутствии
    пользователя в max_users).
  • Конфиг: новая секция users.model (env MAX_USERS_MODEL) для переопределения модели MaxUser.

Изменение (BC)

  • Таблица bot_chats переименована в max_bot_chats. Потребителям необходимо выполнить
    php artisan vendor:publish --tag=laravel-max-client-migrations --force и php artisan migrate.
  • Миграции переименованы в 0001_01_01_00000x (Laravel publishable convention) — повторная публикация перезапишет
    старые файлы миграций.

Затронутые сценарии

  • При добавлении/запуске бота в чат — пользователь автоматически сохраняется в max_users с данными из MAX API. Поля
    description/avatar_url/full_avatar_url заполняются при наличии UserWithPhoto
    (webhook отдаёт User — поля доступны для заполнения через API getChatMembers/getBotMembership).
  • Связь BotChat::maxUser работает напрямую по user_id — без дополнительных join или подзапросов.

Качество

  • PHP 8.4, PSR-12, PHPStan level max — 0 ошибок.
  • PHPUnit зелёные (149 тестов / 340 assertions); покрытие строк 99.79%, порог ≥ 95%.
  • composer audit — без уязвимостей.