feat(payments): edit the rewarded-ads config from the admin catalog page #262

Merged
developer merged 1 commits from feature/admin-reward-config into development 2026-07-14 08:46:02 +00:00
Owner

Ценник «фишки за рекламу» теперь редактируется из админки — следом за #261, по твоему выбору (секция на странице /catalog).

Проблема

Payout rewarded + дневной/часовой потолки лежат в общей строке payments.config и не имели админ-поверхности — менялись только SQL. Расходилось с D32 (rewarded-ставка должна быть настраиваемой в админке).

Что сделано (без миграции — колонки уже есть)

  • Сервис: RewardConfig (getter) + SetRewardConfig (валидирует ≥0).
  • Store: setRewardConfig (UPDATE синглтон-строки).
  • Хендлер consoleSetReward + роут POST /_gm/catalog/reward; consoleCatalog грузит текущие значения в вид.
  • Шаблон: секция «Rewarded ads» на странице каталога (payout + дневной + часовой потолок, префилл текущими; 0 payout = rewarded выключен).
  • Доки: уточнение к D32 (rewarded-ставка — конфиг-строка, правится на странице каталога; не продаваемый атом).

Роут /catalog/reward зарегистрирован до /catalog/:id (gin 1.12 держит статик+wildcard); интеграционный тест поднимает сервер — коллизии нет.

Тесты

  • Интеграция TestConsoleRewardConfig: POST обновляет payout+потолки, страница префиллит, отрицательное значение отклоняется.
  • Локально: gofmt · build · vet · интеграция (catalog + reward) — зелёное.

Не сюда

«No-ads навсегда» как продукт — по D32/D33 остаётся grant-онли (решено ранее).

Ценник «фишки за рекламу» теперь редактируется из админки — следом за #261, по твоему выбору (секция на странице `/catalog`). ## Проблема Payout rewarded + дневной/часовой потолки лежат в общей строке `payments.config` и **не имели админ-поверхности** — менялись только SQL. Расходилось с D32 (rewarded-ставка должна быть настраиваемой в админке). ## Что сделано (без миграции — колонки уже есть) - Сервис: `RewardConfig` (getter) + `SetRewardConfig` (валидирует ≥0). - Store: `setRewardConfig` (UPDATE синглтон-строки). - Хендлер `consoleSetReward` + роут `POST /_gm/catalog/reward`; `consoleCatalog` грузит текущие значения в вид. - Шаблон: секция **«Rewarded ads»** на странице каталога (payout + дневной + часовой потолок, префилл текущими; 0 payout = rewarded выключен). - Доки: уточнение к D32 (rewarded-ставка — конфиг-строка, правится на странице каталога; не продаваемый атом). Роут `/catalog/reward` зарегистрирован до `/catalog/:id` (gin 1.12 держит статик+wildcard); интеграционный тест поднимает сервер — коллизии нет. ## Тесты - Интеграция `TestConsoleRewardConfig`: POST обновляет payout+потолки, страница префиллит, отрицательное значение отклоняется. - Локально: gofmt · build · vet · интеграция (catalog + reward) — зелёное. ## Не сюда «No-ads навсегда» как продукт — по D32/D33 остаётся grant-онли (решено ранее).
developer added 1 commit 2026-07-14 08:40:45 +00:00
feat(payments): edit the rewarded-ads config from the admin catalog page
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 12s
CI / integration (pull_request) Successful in 24s
CI / ui (pull_request) Has been skipped
CI / conformance (pull_request) Successful in 10s
CI / gate (pull_request) Successful in 1s
CI / deploy (pull_request) Successful in 1m57s
eb7fa98426
The "watch for chips" rewarded payout and its per-day / per-hour caps live in the
shared payments.config row and had no admin surface — they could only be changed by
SQL, contrary to D32 (the rewarded rate is meant to be admin-configurable). Add a
"Rewarded ads" form on the /_gm/catalog page: RewardConfig / SetRewardConfig on the
service (non-negative validated), a setRewardConfig store writer (the singleton
config row), the consoleSetReward handler + POST /_gm/catalog/reward route, and the
form pre-filled from the current config. No migration — the columns already exist.

The reward rate is a config value, not a sellable catalog atom (so a "no-ads forever"
style product is still out of scope by D32/D33).

Test: an integration test sets the config, checks the page pre-fill, and refuses a
negative value.
owner approved these changes 2026-07-14 08:45:41 +00:00
developer merged commit 7cc2b50d23 into development 2026-07-14 08:46:02 +00:00
developer deleted branch feature/admin-reward-config 2026-07-14 08:46:02 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#262