Нужно реализовать класс Antiban, чтобы он проходил все юнит тесты в AntibanTests.cs
Входные данные:
класс EventMessage, с полями:
- номер_телефона
- время когда пришло событие в систему
- приоритет (0 - сервисные, 1 - рассылки)
Пример:
Предположим, что в систему пришли такие события:
- Номер1, 0, 12:00:00
- Номер2, 0, 12:01:00
- Номер1, 1, 12:01:25
- Номер2, 1, 12:01:35
- Номер1, 1, 12:01:50
- Номер2, 0, 12:02:00
- Номер1, 0, 12:02:01
То выходной порядок должен быть таким:
- Номер1, 12:00:00 (1)
- Номер2, 12:01:00 (2)
- Номер1, 12:01:25 (3)
- Номер2, 12:02:00 (4) - т.к. была отправка по этому номеру в 12:01:00, следующая отправка только через минуту по этому номеру
- Номер1, 12:02:25 (7) - т.к. предыдущая отправка по этому номеру была в 12:01:25, следующая отправка только через минуту по этому номеру
- Номер2, 12:03:00 (6) - т.к. предыдущая отправка по этому номеру будет в 12:02:00, следующая отправка только через минуту по этому номеру
- Номер1, 12:01:25 + 24 часа (5) - т.к. ранее уже была отправлена рассылка (приоритет = 1) по этому номеру, то следующая отправка по рассылка + 24 часа
Должны соблюдаться такие правила:
- период между сообщениями на разные номера, должен быть не менее 10 сек. Для теста возьмем, что равно 10 сек
- период между сообщениями на один номер, должен быть не менее 1 минуты. Для теста возьмем, что равно 1 минуте
- период между сообщениями с приоритетом=1 на один номер, не менее 24 часа. Т.е. должна отправлять только одна рассылка в день на один номер.
В случае если юнит тесты некорректны, просим открыть Issue в этом репозитории