Требуется спроектировать модуль расчета стоимости доставки. Есть две службы доставки:
- «Быстрая доставка»:
base_url: string @var sourceKladr string //кладр откуда везем @var targetKladr string //кладр куда везем @var weight float //вес отправления в кг @return json { "price": float //стоимость "period": int //количество дней начиная с сегодняшнего, но после 18.00 заявки не принимаются. "error": string }
- «Медленная доставка»:
имеет базовую стоимость 150р
base_url: string @var sourceKladr string //кладр откуда везем @var targetKladr string //кладр куда везем @var weight float //вес отправления в кг @return json { "coefficient": float //коэффициент (конечная цена есть произведение базовой стоимости и коэффициента) "date": string //дата доставки в формате 2017-10-20 "error": string }
Задача в том, чтобы получить для набора отправлений стоимость и сроки доставки в контексте списка транспортных компаний и одной выбранной. Формат полученных от транспортных компаний данных должен быть приведен к единому виду.
{
"price": float //стоимость
"date": string //дата доставки в формате 2017-10-20
"error": string
}
Набор данных с отправлениями можно создать произвольно, взаимодействие с сервисами транспортных компаний эмулировать. Наличие экранных форм приветствуется, но не обязательно. Реализация предполагает решение задачи с использованием основных паттернов ООП. Версия PHP — 7.0+, использование реляционных баз данных возможно, но не обязательно. Модуль должен легко расширяться в контексте транспортных компаний и их входных данных для расчета стоимости доставки. Решение требуется предоставить в виде исходного кода, готового для развертывания на веб-сервере (приложить файловый архив или ссылку на github, например), при использовании БД приложить дампы созданных таблиц и указать тип и версию использованной БД.
Для изменеия текущего времени нужно изменить строчку в файле index.php:
\Carbon\Carbon::setTestNow(\Carbon\Carbon::parse('2017-08-15T15:52:01+00:00'));
Для запуска:
docker rm -f $(docker ps -qa)
docker compose up --build
docker exec -it delivery-backend composer install
http://localhost:80