- Есть система учета задач, в которой есть пользователи и задачи, назначенные на них.
- На одной задаче может быть только один ответственный.
- Каждый пользователь может забрать неограниченное количество задач
- Если пользователь выходит из системы
- его статус меняется на offline
- нужно распределить его задачи на других онлайн пользователей с учетом их загруженности(максимально равномерно распределить).
Нужно реализовать rest сервис
- пользователи могут менять свой статус (online, offline)
- забирать на себя задачи и переводить их в различные статусы(завершено, отклонено)
- создавать задачи.
- До начало работы
1.1 Список пользователей на текущий момент
Пользователь 4 не должен участвовать, т.к. он offline Должны задачи взять пользовать 2 и 3
[ { "id": 1, "username": "user1", "email": "email1", "status": "Online" }, { "id": 2, "username": "user2", "email": "email2", "status": "Online" }, { "id": 3, "username": "user3", "email": "email3", "status": "Online" }, { "id": 4, "username": "user4", "email": "email4", "status": "Offline" } ]
1.2 Список всех задач
[ { "id": 5, "name": "name task1", "userId": 1, "status": "Open" }, { "id": 6, "name": "name task2", "userId": 1, "status": "Open" } ]
- Ставим статус offline пользователю 1
- Смотрим, что изменилось
3.1 Снова список всех задач
Изменились правильно userId задач[ { "id": 5, "name": "name task1", "userId": 2, "status": "Open" }, { "id": 6, "name": "name task2", "userId": 3, "status": "Open" } ]