Нужно сделать форму оформления заказа для сайта.

Для оформления заказа клиент должен:

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

После оформления заказа в БД должна появиться запись о заказе и клиенте (если такого клиента не было до этого) .

Все указанные клиентом данные должны быть сохранены.

Все заказы с одним номером телефона должны привязаться к одному клиенту в БД. Клиентов с одинаковым номером телефона не должно быть в БД. Важно: учесть ситуацию с двумя параллельными запросами, т.е. при двух одновременных запросах от одного клиента ни один из запросов не должен упасть (блокировки)

Тарифы предварительно занесены в БД, у каждого тарифа есть название, цена, и дни по которым он может доставляться.

Требования

Бэк: PHP, Laravel

БД: postgresql, mysql

Фронт: верстка bootstrap, Vue js

P.S.

Сейчас к тарифу не привязаны конкретные дни, когда можно начать доставку.

Решение в лоб: в тарифе ввести json поле, где буду написаны доступные дни недели для доставки. По ним фронт делает ограничение первого дня доставки.