maxoralbay / intelogis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задача

Требуется спроектировать модуль расчета стоимости доставки.

Есть две службы доставки:

  1. «Быстрая доставка»:
    base_url: string
    @var sourceKladr string //кладр откуда везем
    @var targetKladr string //кладр куда везем
    @var weight float //вес отправления в кг
    @return json
    {
    'price': float //стоимость
    'period': int //количество дней начиная с сегодняшнего, но после 18.00
    заявки не принимаются.
    'error': string
    }
    
  2. «Медленная доставка»: имеет базовую стоимость 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,

например), при использовании БД приложить дампы созданных таблиц и указать тип

и версию использованной БД.

Резульат

url: http://examples.to/intelogis/public/api/v1/shipments/fast|slow

{
    "sourceKladr": "1234567890",
    "targetKladr": "9876543210",
    "weight": 5.6,
    "base_url": "http://slow-delivery-service.com"
}
{
    "price": 61.2,
    "date": "2023-10-11 07:23:08",
    "error": null
}

About


Languages

Language:PHP 83.1%Language:Blade 16.7%Language:JavaScript 0.2%