Files
portal/app/Classes/Modules/Steps/Processors/CreateStepsProcessor.php
T
omair saleh d8c767c670 Large commit
2021-08-16 08:59:43 +08:00

48 lines
1.6 KiB
PHP

<?php
namespace App\Classes\Modules\Steps\Processors;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\Processors\UpdatesOrderCurrentStepProcessor;
use App\Classes\Modules\Orders\Services\FetchesOrder;
use App\Classes\Modules\Steps\Services\CreatesSteps;
use App\Classes\Modules\Steps\Services\FetchesSteps;
use App\Classes\Modules\Orders\Services\UpdatesCurrentStep;
use App\Classes\Modules\Orders\Standards\Rules\CanUpdateCurrentStep;
use App\Classes\Modules\Steps\DataTransferObjects\StepsObject;
use App\Classes\Modules\Steps\Standards\Rules\CanCreateStep;
use App\Classes\ValueObjects\Constants\OrderStatus;
use App\Classes\ValueObjects\Constants\Steps;
use App\Models\Order;
use App\Models\Step;
use Illuminate\Database\Eloquent\Model;
class CreateStepsProcessor
{
private $canCreateStep;
private $createsSteps;
private $fetchesOrder;
private $fetchesSteps;
public function __construct(CanCreateStep $canCreateStep, FetchesOrder $fetchesOrder, FetchesSteps $fetchesSteps, CreatesSteps $createsSteps )
{
$this->canCreateStep = $canCreateStep;
$this->createsSteps = $createsSteps;
$this->fetchesOrder = $fetchesOrder;
$this->fetchesSteps = $fetchesSteps;
}
public function execute(Model $order, string $currentStep, $appointee_id){
$order_steps_object = new StepsObject( $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null, 0, null);
$this->canCreateStep->passes($order_steps_object);
return $this->createsSteps->execute($order, $order_steps_object);
}
}