feat(23-shipment-presets-backend): tabela DB, repository CRUD i JSON API dla presetów przesyłek

Phase 23 complete:
- Migracja shipment_presets (16 kolumn: name, color, carrier, wymiary, waga, itp.)
- ShipmentPresetRepository z findAll/findById/create/update/delete
- ShipmentPresetController z 4 endpointami JSON API
- Routing w routes/web.php z auth middleware

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-22 23:27:14 +01:00
parent d6375cc61d
commit 03a237e7d2
8 changed files with 635 additions and 13 deletions

View File

@@ -57,6 +57,8 @@ use App\Modules\Shipments\AllegroShipmentService;
use App\Modules\Shipments\InpostShipmentService;
use App\Modules\Shipments\ShipmentController;
use App\Modules\Shipments\ShipmentPackageRepository;
use App\Modules\Shipments\ShipmentPresetController;
use App\Modules\Shipments\ShipmentPresetRepository;
use App\Modules\Shipments\ShipmentProviderRegistry;
use App\Modules\Printing\ApiKeyMiddleware;
use App\Modules\Printing\PrintApiController;
@@ -424,4 +426,13 @@ return static function (Application $app): void {
$router->get('/settings/printing', [$printSettingsController, 'index'], [$authMiddleware]);
$router->post('/settings/printing/keys/create', [$printSettingsController, 'createKey'], [$authMiddleware]);
$router->post('/settings/printing/keys/{id}/delete', [$printSettingsController, 'deleteKey'], [$authMiddleware]);
// Shipment presets API
$presetRepository = new ShipmentPresetRepository($app->db());
$presetController = new ShipmentPresetController($presetRepository);
$router->get('/api/shipment-presets', [$presetController, 'list'], [$authMiddleware]);
$router->post('/api/shipment-presets', [$presetController, 'store'], [$authMiddleware]);
$router->post('/api/shipment-presets/update', [$presetController, 'update'], [$authMiddleware]);
$router->post('/api/shipment-presets/delete', [$presetController, 'destroy'], [$authMiddleware]);
};