26A-23 — Printable Rollback Plan
ROLLBACK PLAN ONLY — NO CREATE / NO DELETE
Approval / Rollback Phrases
Approval phrase: SAVE_ONE_DRAFT_SHIFT
Rollback phrase: ROLLBACK_ONE_DRAFT_SHIFT
Test Row Identity Fields
| created row id | Required after future write; unavailable in 26A-23 because no row is created. |
|---|---|
| test token | Future unique marker, recommended format: 26A_ONE_ROW_TEST_20260605 |
| approval phrase | SAVE_ONE_DRAFT_SHIFT |
| rollback phrase | ROLLBACK_ONE_DRAFT_SHIFT |
| target row count | 1 |
| created by phase | Future controlled write phase only |
| publish status | Must remain unpublished |
| notification status | Must remain not sent |
| employee view status | Must remain not visible |
| rollback mode | Future dry-run first, then explicit cleanup |
Future Rollback Command Preview
Future inspect command shape only
Not installed by 26A-23
Would inspect the future test row before any cleanup.
php artisan hd:draft-shift-test-row:inspect --test-row-id={created_row_id} --approval=SAVE_ONE_DRAFT_SHIFT --dry-run=yes
Future rollback command shape only
Not installed by 26A-23
Would remove only the verified future test row after explicit approval.
php artisan hd:draft-shift-test-row:rollback --test-row-id={created_row_id} --confirm=ROLLBACK_ONE_DRAFT_SHIFT --limit=1
Rollback Checklist
- Capture created row id from the future one-row write result.
- Capture created test token or phase marker from the future write result.
- Confirm row is still draft-only and unpublished.
- Confirm row has not been viewed by employee self-service.
- Confirm no employee notification was generated.
- Confirm row count target is exactly one.
- Run future rollback in dry-run/inspect mode first.
- Execute cleanup only after exact row identity is confirmed.
- Re-run inspection after cleanup to confirm the row is removed.
- Keep a manager-facing result page showing created row, rollback status, and affected-row count.
Rollback Boundaries
- Rollback must only target the single test row created by the future controlled one-row write.
- Rollback must require the exact rollback phrase: ROLLBACK_ONE_DRAFT_SHIFT.
- Rollback must require the created test row id or a unique test token from the future write result.
- Rollback must not delete any published schedule rows.
- Rollback must not delete any employee record.
- Rollback must not delete payroll, POS, reservation, payment, waiver, or customer data.
- Rollback must not touch unavailable blocks or conflict-review records.
- Rollback must show a dry-run inspection before any future delete action.
- Rollback must report the target row before removal.
- Rollback must confirm that only one row was affected.
Dry-Run Validated Payload
| approval phrase | SAVE_ONE_DRAFT_SHIFT |
|---|---|
| target row count | 1 |
| employee id | 1 |
| employee name | Sample Employee |
| draft date | 2026-06-05 |
| start time | 09:00 |
| end time | 12:00 |
| position | Front Desk |
| manager initials | GH |
| dry run only | yes |
| write status | No write in 26A-23 |
| rollback status | Plan only; no delete in 26A-23 |
Safety Locks
- No ENV changes.
- No database writes.
- No database deletes.
- No migration creation or execution.
- No real draft shift save.
- No real rollback or cleanup command is installed.
- No published schedule.
- No employee self-view change.
- No employee text message.
- No employee email notification.
- No payroll, POS, reservation, payment, waiver, or customer profile changes.
- No hard conflict blocking.
- No automatic scheduling.
- No Payfast Office file, route, controller, or database action.
- Routes are GET-only and planning-only.
Route Readiness
| 26A 23 rollback plan | Available |
|---|---|
| 26A 23 print packet | Available |
| 26A 23 smoke test | Available |
| 26A 22 dry run validator | Available |
| 26A 22 dry run result | Available |
| 26A 21 final pre write lock | Available |
| 26A 20 approval review packet | Available |
| 26A 19 capture shell | Available |
Next Step Notes
- Recommended next phase: 26A-24 — Controlled One-Row Draft Save Target Table Confirmation / Still No Write.
- Before writing anything, confirm the exact draft-shift table and columns one final time.
- The first actual write must remain one row only.
- The first actual write must immediately display the created row id and rollback instructions.
- Employee notifications and schedule publishing must remain disabled.