feat: initial commit

This commit is contained in:
JP
2024-08-05 08:04:35 +08:00
parent 0f3c3db73b
commit 140e821e0c
194 changed files with 14509 additions and 254 deletions

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Actions\Branch;
use App\Actions\BaseAction;
use App\Commands\Branches\CreateBranchCommand;
use App\DataObjects\CreateBranchDTO;
use Exception;
use Spatie\LaravelData\Data;
class StoreBranch extends BaseAction
{
public function __construct(private CreateBranchCommand $createBranchCommand) {}
/**
* @throws Exception
*/
public function __invoke(CreateBranchDTO | Data $payload, \Closure $next)
{
try {
$payload->branch = $this->createBranchCommand->execute($payload->data);
return $next($payload);
} catch (Exception $exception)
{
throw new \LogicException('Error Storing Branch: ' . $exception->getMessage());
}
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Actions\Branch;
use App\Actions\BaseAction;
use App\Commands\Series\CreateSeriesCommand;
use App\DataObjects\CreateBranchDTO;
use App\DataObjects\CreateSeriesDTO;
use Spatie\LaravelData\Data;
class StoreBranchSeries extends BaseAction
{
public function __construct(
private CreateSeriesCommand $createSeriesCommand
) {}
public function __invoke(CreateBranchDTO|Data $payload, \Closure $next)
{
try {
$seriesPayload = CreateSeriesDTO::from(['branch_id' => $payload->branch->id, 'series' => $payload->data['series'], 'is_start' => true]);
$payload->series = $this->createSeriesCommand->execute($seriesPayload->toArray());
return $next($payload);
} catch (\Exception $exception) {
throw new \LogicException('Failed to create branch series', $exception->getMessage());
}
}
}