добавляю скрипты, отвечающие за саму логику\функциональность приложения
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Taxi\App\DTO;
|
||||
|
||||
use Modules\Taxi\App\Http\Requests\TaxiOrderRequest;
|
||||
|
||||
/**
|
||||
* Класс для формирования DTO с данными по заказу на такси
|
||||
*/
|
||||
class TaxiOrderDTO
|
||||
{
|
||||
public function __construct(
|
||||
public readonly int | null $id,
|
||||
public readonly string | null $emp_login,
|
||||
public readonly string $emp_phone,
|
||||
public readonly string $taxi_date,
|
||||
public readonly string $taxi_time,
|
||||
public readonly string $taxi_address_from,
|
||||
public readonly string $taxi_address_to,
|
||||
public readonly int $cancel_rqst = 0,
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Метод формирования DTO с данными по заказу такси
|
||||
*
|
||||
* По сути, простой сеттер, позволяющий создать для обрабатываемого объекта данных экземпляр класса для более удобного взаимодействия с ним, более стандартизированного и более надежного (так как все параметры прописаны в одном месте)
|
||||
* Использование self позволяет нам не зависеть от названия текущего класса, если мы захотим его переименовать
|
||||
*
|
||||
* @param TaxiOrderRequest $rqst запрос с валидными данными по заказу, пришедшими с фронта
|
||||
* @param string $rqstMethod метод обрабатываемого запроса. Обновление или создание, например
|
||||
* @return self
|
||||
*/
|
||||
public static function setTaxiOrderDTO(TaxiOrderRequest $rqst, string $rqstMethod): self
|
||||
{
|
||||
$validated = $rqst->validated();
|
||||
|
||||
switch ($rqstMethod) {
|
||||
case 'PATCH':
|
||||
return new self(
|
||||
id: $validated['id'],
|
||||
//При обновлении запроса логин пользователя должен оставаться неизменным
|
||||
emp_login: $rqst->emp_login,
|
||||
emp_phone: $validated['emp_phone'],
|
||||
taxi_date: $validated['taxi_date'],
|
||||
taxi_time: $validated['taxi_time'],
|
||||
taxi_address_from: $validated['taxi_address_from'],
|
||||
taxi_address_to: $validated['taxi_address_to'],
|
||||
cancel_rqst: $validated['cancel_rqst'] ?? null,
|
||||
);
|
||||
break;
|
||||
default:
|
||||
return new self(
|
||||
id: $validated['id'] ?? null,
|
||||
emp_login: $validated['emp_login'],
|
||||
emp_phone: $validated['emp_phone'],
|
||||
taxi_date: $validated['taxi_date'],
|
||||
taxi_time: $validated['taxi_time'],
|
||||
taxi_address_from: $validated['taxi_address_from'],
|
||||
taxi_address_to: $validated['taxi_address_to'],
|
||||
cancel_rqst: $validated['cancel_rqst'] ?? null,
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user