Create cqrs bulk commands
Prestashop Developer Skills
npx -y skills add jeffsenso/prestashop-skills --skill create-cqrs-bulk-commandsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create bulk action commands and their handlers. All bulk handlers extend AbstractBulkCommandHandler, catch errors per item, and report failures via BulkCommandExceptionInterface. Trigger: "create bulk commands for {Domain}".
SKILL.md
2.2 KB, as published. Nobody here has run it
create-cqrs-bulk-commands
See CQRS/CONTEXT.md for the bulk handler pattern (AbstractBulkCommandHandler, BulkCommandExceptionInterface, continue after failure).
1. Bulk delete command
Create src/Core/Domain/{Domain}/Command/BulkDelete{Domain}sCommand.php:
- Constructor takes
array $ids(scalarint[]) - Single getter:
getIds(): array
2. Bulk status command
Create src/Core/Domain/{Domain}/Command/BulkToggle{Domain}StatusCommand.php:
- Constructor takes
array $ids(int[]) andbool $expectedStatus $expectedStatus = truemeans enable,falsemeans disable- Getters:
getIds(): arrayandgetExpectedStatus(): bool
3. Bulk handlers
All bulk handlers follow the same structure. Create in src/Adapter/{Domain}/CommandHandler/:
Bulk delete handler
BulkDelete{Domain}sHandler.php:
- For each ID, call the repository delete
- Collect failures, continue with remaining IDs
Bulk status handler
BulkToggle{Domain}StatusHandler.php:
- For each ID, load entity, set
active = $command->getExpectedStatus(), update - Use the target status from the command — do not flip the current value
4. Handler interfaces
Create in src/Core/Domain/{Domain}/CommandHandler/:
BulkDelete{Domain}sHandlerInterfaceBulkToggle{Domain}StatusHandlerInterface
Both return void. The bulk exception is thrown, not returned.
Rules
Conventions (AbstractBulkCommandHandler, continue after failure, BulkCommandExceptionInterface) are in CQRS/CONTEXT.md. Skill-specific reminders:
- Be consistent with the single-entity commands on ID typing
- Skip this skill entirely if the entity has no bulk grid actions