1. Почему мы не показываем историю редактирования и блокировок (кто и когда заблокировал / редактировал промокод)?
Заказчик решил не делать историю изменений — в текущих процессах это никому не нужно для принятия решений. Если потребуется аудит, логи можно будет добавить отдельно. Пока ушло в бэклог.
2. Почему именно "Заблокировать", а не "Поставить на паузу"?
По функции это и есть пауза, но слово "блокировка" привычнее для людей, которые работают с B2B-интерфейсами. Плюс не нужно плодить лишние сущности в статусной модели.
3. Может ли пользователь редактировать чужие промокоды?
Да, любой менеджер компании видит и может редактировать все промокоды. Разграничение "свой/чужой" не нужно — только усложнило бы систему.
4. Должен ли партнер (поле в таблице) быть ссылкой?
Нет, страниц партнеров в системе нет, поэтому ссылка никуда не ведет.
5. Можно ли редактировать промокод в статусе "Заблокирован"?
Да. Иначе зачем блокировать, если нельзя потом исправить — пришлось бы создавать новый промокод с нуля.
6. Можно ли редактировать промокод в статусе "Истек"?
Да, можно поменять срок и количество активаций, а скидку нельзя: люди уже могли скопировать код и рассчитывать на конкретный процент. Если ужесточаешь условия — статус остается "Истек". Если даешь больше — промокод снова становится "Действует".
7. При каких условиях промокод получает статус "Истек"?
Когда вышел срок, закончились активации или и то и другое одновременно.
8. "Удалить" - это архив или безвозвратное удаление?
Безвозвратно. Архив потребовал бы отдельной логики восстановления — лишняя работа для разработки.
9. Можно ли удалить активный промокод, который используется?
Да. Должна быть возможность экстренно выключить промокод, даже если им кто-то пользуется прямо сейчас.
10. Можно ли редактировать условия активного промокода?
Да, но только срок и лимит активаций. Скидку трогать нельзя — пользователи уже могли скопировать код и ждать определенных условий.
11. Нужно ли уведомлять пользователей об изменении условий и об удалении промокода?
Да, в личном кабинете или через уведомления.
12. Пользователь придумывает название сам или автогенерация?
Пользователь придумывает сам. Заказчику нужны осмысленные названия, автогенерацию посчитали лишней для первой версии.
13. Что делать при неуникальном названии - предлагать варианты или просто ошибку?
Просто ошибка: "Такое название уже существует". Предлагать варианты — дополнительная логика, не стоит того на старте.
14. По каким причинам администратор блокирует промокод?
По желанию, причины не фиксируем. Просто ручное действие.
15. Один пользователь может иметь несколько промокодов?
Ограничений нет, значит может. Вопрос остался открытым — реализовали базовое поведение, если нужно будет ограничить — добавим.
16. Можно ли использовать один промокод несколько раз?
Нет, одна активация на пользователя. Иначе это просто бесконечная скидка.
17. Можно ли передать промокод другому пользователю?
Прямого запрета нет. Промокод не привязан к конкретному человеку — это потребовало бы отдельной логики. Если появятся злоупотребления, доработаем.
18. Есть ли минимальная сумма для применения промокода?
Нет, в требованиях этого не было. Добавление усложнило бы логику расчетов.
19. Совмещается ли скидка по промокоду с другими скидками (при оплате тарифа)?
Да, применяется максимальная из доступных скидок.
20. При разблокировке восстанавливается старый статус, который был до блокировки?
Да, если до блокировки промокод действовал — он и останется действующим после разблокировки, если срок и лимит еще позволяют.
21. Какие ограничения по сроку годности промокода?
От 1 дня до 1 года с момента создания. Меньше дня — бессмысленно, больше года — системное ограничение, чтобы не накапливались "вечные" промокоды.
22. Какие ограничения по количеству активаций?
От 1 до 9999 активаций. Больше 10 тысяч - нагрузка на базу.
23. Какие ограничения по длине и формату названия промокода?
3–30 символов, только латиница, цифры и нижнее подчеркивание. Все остальное запрещено — чтобы не было проблем на бэке и при поиске.
24. Есть ли лимит на количество промокодов для одного менеджера / в системе вообще?
На менеджера ограничений нет. Системный лимит — 10 000 активных промокодов. При превышении — ошибка и предложение удалить неиспользуемые.
25. Как проверяется уникальность названия промокода?
Проверка на бэкенде. Название должно быть уникальным во всей системе, не только у конкретного менеджера. Регистр не учитывается: SUMMER и summer — одно и то же.
26. Что происходит с промокодом при удалении менеджера?
Промокод остается в системе, привязка к менеджеру обнуляется. В таблице поле "Партнер" будет пустым или с пометкой "Удален".
27. Нужна ли автоматизация создания промокодов?
Для первой версии нет, только ручное создание. Автоматизацию добавим, если клиенты запросят.
28. Зачем блокировать истекшие промокоды?
Блокировать истекший промокод — избыточное действие, он и так уже не работает.