Задача — по нажатию одной кнопки получать партию из нужного количества кодов, от сотен до десятков тысяч, где каждый код случаен, но подчиняется заданным правилам: длина, допустимые символы, при необходимости — общий префикс для узнаваемости акции. Критично, чтобы система помнила уже выданные коды и не допускала повторов даже спустя месяцы работы и десятки прошлых партий.
Отдельный блок — управление жизнью кода после генерации: дата, после которой код перестаёт действовать, и лимит на число активаций — один раз, фиксированное число раз или без ограничений в пределах партии. По готовности партии нужен экспорт списка в файл, готовый к загрузке в почтовый сервис для подстановки в письма.
Пожелания к реализации:
— работа с большими объёмами без просадки скорости;
— защита от совпадений между разными партиями и разными кампаниями;
— гибкая настройка срока действия и лимита использований;
— простой экспорт данных, понятный без инструкций.