Skip to content

OG-UZOK/TaskJavaModul2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Контрольная точка 1. Сервис управления расписаниями

Структура бд

Расписание

Поле Тип Обязательность Описание
id VARCHAR(32) + Идентификатор. Заполняется при создании автоматически. UUID без разделителей
schedule_name VARCHAR(255) - Название
creation_date TIMESTAMPTZ + Дата создания. Заполняется автоматически при создании

Шаблон расписания

Поле Тип Обязательность Описание
id VARCHAR(32) + Идентификатор. Заполняется при создании автоматически. UUID без разделителей
creation_date TIMESTAMPTZ + Дата создания. Заполняется автоматически при создании

Слот расписания

Поле Тип Обязательность Описание
id VARCHAR(32) + Идентификатор. Заполняется при создании автоматически. UUID без разделителей
schedule_template_id VARCHAR(32) + Идентификатор шаблона расписания, в рамках которого существует слот
begin_time TIMETZ + Время начала слота
end_time TIMETZ + Время завершения слота

Период расписания

Поле Тип Обязательность Описание
id VARCHAR(32) + Идентификатор. Заполняется при создании автоматически. UUID без разделителей
slot_id VARCHAR(32) + Идентификатор слота, реализуемого сущностью периода
schedule_id VARCHAR(32) + Идентификатор сущности расписания, в рамках которой существует слот
slot_type VARCHAR(20) + Тип слота. Возможные значения: [LOCAL, FROM HOME, UNDEFINED]
administrator_id VARCHAR(32) + Идентификатор владельца слота. Заполняется из заголовка x-current-user при создании
executor_id VARCHAR(32) - Идентификатор исполнителя слота. Не заполняется, если совпадает с администратором

Сотрудники

Поле Тип Обязательность Описание
id VARCHAR(32) + Идентификатор. Заполняется при создании автоматически. UUID без разделителей
employee_name VARCHAR(255) + Имя сотрудника
status VARCHAR(20) + Статус сотрудника. Возможные значения: [WORKING, TRIAL, TIME_OFF, DISMISSED]
position VARCHAR(20) + Позиция сотрудника. Возможные значения: [MANAGER, EMPLOYEE, UNDEFINED, TECH]

Задачи в работе

  1. Для всех сущностей необходимы методы создания
  2. Для всех сущностей необходимы методы получения по id
  3. Для периодов должен быть метод получения запросов с фильтром и сортировкой
Поле Тип Обязательность Описание
filter JSON - ------
filter.id VARCHAR(32) - Идентификатор
filter.slotId VARCHAR(32) - Идентификатор слота
filter.scheduleId VARCHAR(32) - Идентификатор сущности расписания, в рамках которой существует слот
filter.slotType VARCHAR(20) - Тип слота. Возможные значения: [LOCAL, FROM HOME, UNDEFINED]
filter.administratorId VARCHAR(32) - Идентификатор владельца слота
filter.executorId VARCHAR(32) - Идентификатор исполнителя слота
sort JSON - ------
sort.field ENUM - Поле, по которому осуществляется сортировка в формате lowerCamelCase
sort.direction ENUM - Направление соритировки.[ASC, DESC]
page INTEGER - Страница
size INTEGER - Число записей на странице

3a. В фильтр и сортировку так же передавать beginTime и endTime.

  1. При создании периодов производить проверку на отсутствие перекрывающихся периодов

  2. Получение полного расписания по идентификатору и по имени (обрабаиттывать когда указано хотя бы одно). Помимо полей расписания, в ответ должны входить связанные периоды, упорядоченные по времени начала слота

  3. Общее качество приложение должно быть насколько возможно высоким (Возвращение разумных ошибок пользователю, качество кода, необходимый минимум оптимизации)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages