Тестовое задание «Автосервис»
Реализуйте описанный функционал с помощью REST-API сервера, который принимает HTTP запросы, хранит данные в БД (СУБД - PostgreSQL) и обрабатывает их. Опишите RESTful-API с помощью Swagger.
Сущности:
Мастер: • ФИО • Выполненные заказы
Машина: • Марка • Модель • Год выпуска • Номер • Владелец
Владелец Машины: • Машины • Заказы
Заказ: • Машина • Описание проблемы с которой обратились • Дата принятия • Услуги включенные в заказ • Товары включенные в заказ • Статус (принято, в процессе, успешно завершено, не успешно завершено, оплачено) • Итоговая стоимость для клиента • Дата завершения
Услуга: • Заказ • Мастер • Стоимость • Статус (Выплачено, не выплачено (мастеру))
Товар: • Название • Стоимость
Запросы:
• POST - Создание сущности «Мастер» • PUT - Редактирование данных сущности • GET - Получение заказов мастера • GET - Расчёт и выдача заработной платы мастеру
• POST - Создание сущности «Машина» • PUT - Редактирование данных сущности
• POST - Создание сущности «Владелец Машины» • PUT - Редактирование данных сущности • GET - Получение заказов этого клиента
• POST - Создание сущности «Заказ» • POST - Добавление «Товара» к сущности «Заказ» • PUT - Редактирование данных сущности • PUT - Редактирование статуса «Заказа» • GET - Расчёт стоимости «Заказа»
• POST - Создание сущности «Услуга» • PUT - Редактирование данных сущности • PUT - Редактирование статуса «Услуга»
• POST - Создание сущности «Товар» • PUT - Редактирование данных сущности
Примечания: • Скидка человека на товары = кол-во его заказов * 1% • Скидка человека на услуги = кол-во его заказов * 2% • Зарплата мастер = 40% от стоимости услуги, которой он занимался. • При расчёте и выдаче зарплаты мастеру, статус услуги меняется на «выплачено» • При изменении статуса заказа на «успешно завершено» или «не успешно завершено», дата завершения приравнивается к текущей дате • Диагностика - это услуга. В случае согласия на ремонт эта услуга проводится бесплатно, в случае отказа человека от ремонта эта услуга стоит 500 грн
История:
- У Сергея есть машина Toyota Camry 2016 года. В один прекрасный день у машины появился стук в коробке передач. Сергей обратился в наш сервис.
- Сергею оформили заказ на диагностику.
- Диагностику ему проводил мастер Алексей. Мастер выяснил, что нужно заменить масло в коробке передач и что пора менять ремень ГРМ.
- Сергей согласился и предоставил свою карту клиента, где у него на счету уже было 2 заказа.
- Администратор добавил товары и услуги к заказу. Новое масло (1000 грн), новый ремень ГРМ (2500), замена масла (900), замена ГРМ (1300).
- Администратор посчитал стоимость всех услуг с учётом скидки. Сказали, что всё будет готово через 2 дня.
- Заменой масла занялся мастер Алексей, а заменой ремня ГРМ занялся мастер Александр.
- Сергей пришёл через 2 дня оплатил счёт со скидкой, и забрал свою машину.
- Мастерам посчитали и выдали их зарплаты.
Cрок выполнения тестового задания 2-3 дня Выполненное тестовое выложить на GitHub