Создание в dashboard, активация через /promo и deep link, feature overrides, права, валидация
Залогинен как super в https://dashboard.agent-os.space/admin/. Вкладка Promo видна.
TESTBASIC7, тариф max, длительность 7 днейОткрыта модалка создания.
TEST_LIM3, тариф pro, длительность 30 днейМодалка создания. Тариф free.
FREE_PLUS_GROUPS, тариф free, длительность 7Уже существует код TESTBASIC7.
TESTBASIC7 (любые остальные поля)UI ограничивает выбор select-ом, но проверяем через прямой API.
POST /api/admin/promo с plan: "fake"/promo CODE▸В системе есть активный код TESTBASIC7 (plan=max, 7d). Юзер уже онбордился, тариф free.
/promo TESTBASIC7Юзер уже онбордился (плюс знаком с ботом). Скопирована ссылка https://t.me/<bot>?start=promo_TESTBASIC7.
Юзер ещё не онбордился (никогда не писал боту).
?start=promo_TESTBASIC7Создан код FREE_PLUS_GROUPS (free + overrides: groups=true, opus_access=true).
/promo FREE_PLUS_GROUPS/start@ в группеЮзер уже активировал TESTBASIC7.
/promo TESTBASIC7 повторноКод с max_uses=1, уже активирован одним юзером.
/promo TEST_LIM1Код с valid_until = вчера.
/promo или deep linkАдмин в Dashboard нажал кнопку power-off у промо → is_active=false.
/promo CODEКода NOPE123 нет в БД.
/promo NOPE123?start=promo_NOPE123В списке промокодов есть активный код.
У промо есть >= 1 активация.
В таблице есть промо.
https://t.me/<bot_username>?start=promo_<CODE>. Bot_username берётся из /api/admin/bot-info.Открыта модалка создания.
В Dashboard есть три admin-юзера: super, ops, business.
/admin/promo показывает «Access denied — missing permission: admin_mgmt».Юзер X не равен ADMIN_ID.
/promonew TEST max 7/promolist/promoinfo CODE/promooff CODE/give @other max 7Юзер не админ.
/promo CODE/promo доступна всем, в отличие от админских команд.