Задача 1
Разработете Spring Boot приложение за управление на задачи и свързани с тях отчети (ще бъде надграждано в следващите упражнения). Приложението трябва да предоставя REST API за създаване, извличане, актуализиране и изтриване на задачи и отчети. Всяка задача може да има множество отчети, свързани с нея.
За всяка задача се съхранява следната информация:
- пореден номер на задачата (id);
- заглавие (summary);
- описание (description);
- краен срок (deadline);
- списък с отчети, свързани с тази задача (reports).
Всеки отчет да съхранява:
- пореден номер на отчет (id);
- съдържание на отчета (content);
- отработено време в часове (workTime);
- дата на създаване (dateCreated);
- дата на актуализация (dateUpdated);
- задачата, към която принадлежи отчетът (task).
Предвидете функционалности:
За задача:
- преглед на всички добавени задачи;
- добавяне на задача;
- преглед на дадена задача по зададен номер;
- актуализация на задача по зададени номер и актуални данни;
- изтриване на задача по зададен номер.
За отчет:
- добавяне на отчет към дадена задача;
- преглед на всички отчети към дадена задача;
- преглед на отчет към дадена задача;
- актуализация на отчет към дадена задача;
- изтриване на отчет към дадена задача.
- извеждане на отчети по дадена задача с брой отработени часове в даден интервал;
- извеждане на отчета по дадена задача с най-голям брой отработени часове;
- изчисляване на отработените часове за изпълнение на задача по подаден номер.
Използвайте DTO обекти (TaskRequestDto, TaskResponseDto, ReportRequestDto, ReportResponseDto) за трансфер на данни между клиентите и сървъра. RequestDto класовете да се използват за получаване на входни данни от клиента, а ResponseDto за връщане на отговори с всички съответни полета, включително свързаните задачи и отчети.