buckets/app/Actions/CreateScenarioAction.php

28 lines
643 B
PHP

<?php
namespace App\Actions;
use App\Models\Scenario;
use Illuminate\Support\Facades\DB;
readonly class CreateScenarioAction
{
public function __construct(
private CreateBucketAction $createBucketAction
) {}
public function execute(array $data): Scenario
{
return DB::transaction(function () use ($data) {
$scenario = Scenario::create($data);
$this->createDefaultBuckets($scenario);
return $scenario;
});
}
private function createDefaultBuckets(Scenario $scenario): void
{
$this->createBucketAction->createDefaultBuckets($scenario);
}
}