Project

General

Profile

Actions

Back-Feature #417

closed

CRUD для заказов

Added by Андрей Савран about 2 months ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Start date:
04/02/2026
Due date:
04/27/2026
% Done:

0%

Estimated time:
12:00 h
Spent time:

Description

Требуется описать в коде сущности и создать сервисы для создания заказов
(задача будет дополняться)


Сущность service (услуга)
service_id: uuid (PK: uuid)
name: varchar
description:


Сущность plan (базовый тариф)
plan_id: uuid (PK: uuid)
service_id: uuid (FK: service.service_id)


Сущность order_details (базовые детали заказа)
order_details_id: uuid (PK: uuid)
service_id: uuid (FK: service.service_id)
date: timestamp without time zone
cost: numeric
currency: varchar


Сущность taxi_plan (тариф такси)
taxi_plan_id: (PK: uuid)
name: varchar
description: varchar
price: numeric
currency: varchar
commission_percent: numeric
duration_minutes: integer
plan_id: uuid (FK: plan.plan_id)


Сущность taxi_order_details (детали заказа такси)
taxi_order_details_id: uuid (PK: uuid)
address_clarification: varchar
additional_commentary: varchar
additional_pics: varchar[]
promo_code: varchar
contacts: varchar
date: timestamp without time zone
order_details_id: uuid (FK: order_details.order_details_id)
currency: varchar
cost: numeric


Сущность order
order_id: uuid (PK: uuid)
user_id: uuid (FK: user.user_id)
executor_id: varchar
order_status: enum (enum OrderStatus, пока что содержит только:
OrderStatus.CREATED, OrderStatus.IN_PROGRESS, OrderStatus.COMPLETED)
order_type: enum (enum OrderType, на данный момент содержит только OrderType.TAXI)
details_id: uuid (FK: order_details.order_details_id)
created_at: timestamp without time zone
comment: varchar
plan_id: uuid (FK: plan.plan_id)


Сущность taxi_route_point - сущность, связывающая заказ автоняни и все остановки в пути, по которому возят детей:
taxi_route_point_id: uuid (PK: uuid)
order_details_id: uuid (FK: order_details.order_details_id)
route_point_index: integer (показывает номер остановки, таким образом можно добавить сколько угодно остановок в один заказ)
address: varchar
latitude: varchar
longitude: varchar


Контроллеры в gate

TaxiRoutePointController - контроллер точек путей такси

GET taxi/routePoint/{detailsId} - получить путь такси, привязанного к деталям заказа

POST taxi/routePoint - добавить путь такси


TaxiPlanController - контроллер тарифов такси

GET taxi/plan - получить все тарифы такси

GET taxi/plan/{planId} - получить конкретный тариф такси

POST taxi/plan - создать тариф такси

PATCH taxi/plan - обновить тариф такси

(последние два метода можно вынести в админку в будущем, потому что по идее обычным пользователям не должен быть доступен этот функционал, но он реализован)


TaxiOrderDetailsController - контроллер деталей заказов такси

GET taxi/order-details/{detailsId} - получить детали заказа такси

POST taxi/order-details - создать детали заказа такси

PATCH taxi/order-details - обновить детали заказа такси (добавить промокод, поменять уточнения, контакты)


OrderController - контроллер заказов

GET order/ - получить все заказы пользователя (в этом, и других методах пользователь берётся из JWT)

GET order/{orderId} - получить конкретный заказ по айди

POST order/ - создать заказ

PATCH order/ - обновить заказ (можно изменить comment)


PlanController - контроллер базовых тарифов

GET plan/{planId} - получить конкретный базовый тариф

POST plan/ - создать базовый тариф (метод для админки?)


ServiceController - контроллер услуг

GET service/{serviceId} - получить конкретную услугу

GET service/ - получить все услуги

POST service/ - создать услугу

PATCH service/ - обновить услугу (сейчас можно обновить только описание)


OrderDetailsController - контроллер деталей заказа

GET orderDetails/{orderDetailsId} - получить конкретные детали заказа

POST orderDetails/ - создать детали заказа

PATCH orderDetails/ - обновить детали заказа (сейчас обновляема только цена)


Actions

Also available in: Atom PDF