[DEMO] resetDataset cablato a DemoSeedService (reset reale dataset demo/sandbox)

- application/services/DemoSeedService.php: logica seed/clone golden #151 -> 996001/996002 (riusabile)
- DemoController::resetDataset: re-seed reale via service (?scope=demo|sandbox|default both), non piu stub
- scripts/seed-demo-dataset.php: thin CLI wrapper sul service
Testato prod: POST /api/demo/reset-dataset (X-Internal-Key) scope=sandbox -> 200, 996002 ri-seedata.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-13 08:47:09 +02:00
co-authored by Claude Opus 4.8
parent e0204dbaa7
commit 6900d942a4
3 changed files with 169 additions and 83 deletions
+15 -5
View File
@@ -10,6 +10,7 @@
*/
require_once __DIR__ . '/BaseController.php';
require_once __DIR__ . '/../services/DemoSeedService.php';
class DemoController extends BaseController
{
@@ -180,12 +181,21 @@ class DemoController extends BaseController
$this->jsonError('Non autorizzato', 401, 'UNAUTHORIZED');
}
// TODO Fase 1 (increment dataset): DELETE + re-seed org demo 996001 da seed idempotente.
// Reset idempotente del dataset demo (clona la golden #151 in 996001/996002).
// ?scope=demo → solo 996001 (read-only) | ?scope=sandbox → solo 996002 | default: entrambe.
$scope = (string) $this->getParam('scope', '');
$targets = $scope === 'demo' ? [996001 => DemoSeedService::TARGETS[996001]]
: ($scope === 'sandbox' ? [996002 => DemoSeedService::TARGETS[996002]]
: DemoSeedService::TARGETS);
$result = DemoSeedService::seed($targets);
$failed = array_filter($result, fn($v) => str_starts_with($v, 'errore'));
$this->jsonSuccess([
'reset' => 'pending_implementation',
'company_ids' => [self::DEMO_ORG_ID],
'note' => 'Logica di reset dataset demo in arrivo (seed isolato org 996001).',
], 'Reset demo (stub)');
'reset' => empty($failed) ? 'done' : 'partial',
'company_ids' => array_keys($result),
'detail' => $result,
], empty($failed) ? 'Dataset demo reimpostato' : 'Reset demo parziale (vedi detail)', empty($failed) ? 200 : 207);
}
// ═══ Helpers ═════════════════════════════════════════════════════════════