From e04689acca1931dfb5e8fc0f0ab09fa980c5a5f4 Mon Sep 17 00:00:00 2001 From: Jp Date: Mon, 16 Feb 2026 01:22:00 +0800 Subject: [PATCH] refactor(sales): replace service with command and action pattern - Replace SaleService with CreateSaleCommand and CreateSaleAction for better separation of concerns - Move sale creation logic into dedicated command class following command pattern - Update CreateSale.php to use new action instead of direct service call - Wrap sale creation in database transaction for data consistency --- app/Actions/Sales/CreateSaleAction.php | 22 +++++++++++++ app/Commands/Sales/CreateSaleCommand.php | 27 ++++++++++++++++ .../SaleResource/Pages/CreateSale.php | 3 +- app/Services/Sales/SaleService.php | 31 ------------------- 4 files changed, 51 insertions(+), 32 deletions(-) create mode 100644 app/Actions/Sales/CreateSaleAction.php create mode 100644 app/Commands/Sales/CreateSaleCommand.php delete mode 100644 app/Services/Sales/SaleService.php diff --git a/app/Actions/Sales/CreateSaleAction.php b/app/Actions/Sales/CreateSaleAction.php new file mode 100644 index 0000000..6f46b0f --- /dev/null +++ b/app/Actions/Sales/CreateSaleAction.php @@ -0,0 +1,22 @@ +createSaleCommand->execute($data); + } +} diff --git a/app/Commands/Sales/CreateSaleCommand.php b/app/Commands/Sales/CreateSaleCommand.php new file mode 100644 index 0000000..e8f0719 --- /dev/null +++ b/app/Commands/Sales/CreateSaleCommand.php @@ -0,0 +1,27 @@ +id, + ); + + return Sale::create($tData->toArray()); + }); + + } +} diff --git a/app/Filament/Resources/SaleResource/Pages/CreateSale.php b/app/Filament/Resources/SaleResource/Pages/CreateSale.php index 2278109..189f1fb 100644 --- a/app/Filament/Resources/SaleResource/Pages/CreateSale.php +++ b/app/Filament/Resources/SaleResource/Pages/CreateSale.php @@ -2,6 +2,7 @@ namespace App\Filament\Resources\SaleResource\Pages; +use App\Actions\Sales\CreateSaleAction; use App\Actions\Transactions\CreateTransactionAction; use App\DataObjects\CreateTransactionDTO; use App\Filament\Resources\ClientResource; @@ -83,7 +84,7 @@ class CreateSale extends CreateRecord { try { DB::beginTransaction(); - $record = app(SaleService::class)->create($this->getFormDataMutation($data)); + $record = app(CreateSaleAction::class)($this->getFormDataMutation($data)); $branch = $record->branch; foreach ($transactions as $transaction) { diff --git a/app/Services/Sales/SaleService.php b/app/Services/Sales/SaleService.php deleted file mode 100644 index 0f51c61..0000000 --- a/app/Services/Sales/SaleService.php +++ /dev/null @@ -1,31 +0,0 @@ -id, - ); - return Sale::create($tData->toArray()); - } -}