First safe route stub for future draft shift saving. The gate is locked by default, and the POST route does not save anything.
This form posts to the new stub route, but the route returns a locked result and saves nothing.
| Gate disabled by default | Passed | Uses HD_EMPLOYEE_SCHEDULE_DRAFT_SAVE_ENABLED; default is false. |
| POST route exists as stub only | Passed | The POST endpoint returns a locked result page and performs no save. |
| No insert/update/delete | Passed | Controller performs no database write statements. |
| No publish action | Passed | No employee-facing schedule is changed. |
| No texts or emails | Passed | No notification behavior is introduced. |
| No hard conflict blocking | Passed | Soft conflicts remain review-only. |
| No production override | Passed | This is a separate builder support route. |
| Field | Label | Required | Example |
|---|---|---|---|
| employee_id | Employee | Yes | selected employee id |
| shift_date | Shift Date | Yes | YYYY-MM-DD |
| start_time | Start Time | Yes | 09:00 |
| end_time | End Time | Yes | 17:00 |
| period_id | Schedule Period | No | selected period id |
| role_position | Role / Position | No | lane attendant |
| notes | Notes | No | optional manager note |
| status | Draft Status | No | draft |
| Table | Status | Rows | Columns | Purpose | Note |
|---|---|---|---|---|---|
| hd_draft_shifts | Present | 5 | id, schedule_period_id, employee_id, work_date, starts_at, ends_at, role, location, area, status, has_soft_conflict, soft_conflict_summary, manager_notes, created_by, updated_by, created_at, updated_at, deleted_at | Preferred future draft shift target. | Inspected read-only only. |
| hd_schedule_shifts | Missing | 0 | Not detected | Possible generic schedule shift table. | Inspected read-only only. |
| hd_employee_schedule_shifts | Present | 2 | id, company_id, employee_id, role_id, schedule_date, starts_at, ends_at, scheduled_hours, shift_title, work_area, station_note, status, notes, created_by, updated_by, settings, created_at, updated_at | Possible employee schedule shift table. | Inspected read-only only. |
| hd_employee_schedules | Missing | 0 | Not detected | Possible schedule header/shift table. | Inspected read-only only. |
| hd_schedule_periods | Present | 2 | id, title, starts_on, ends_on, status, source, notes, created_by, updated_by, created_at, updated_at, deleted_at | Possible schedule period table. | Inspected read-only only. |
| hd_employee_schedule_periods | Missing | 0 | Not detected | Possible employee schedule period table. | Inspected read-only only. |
| hd_published_shifts | Present | 1 | id, published_schedule_period_id, source_schedule_period_id, source_draft_shift_id, employee_id, work_date, starts_at, ends_at, role, location, area, published_shift_status, source_had_soft_conflict, source_soft_conflict_summary, manager_notes, source_shift_payload, created_at, updated_at, deleted_at | Published table; should not be used by draft save. | Published table shown for separation only; not a draft-save target. |
| URI | Status | Action | Open |
|---|---|---|---|
| hd/employee-schedules/builder/draft-shift-save-gate | Found | GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleDraftShiftSaveGateController@index | Open |
| hd/employee-schedules/builder/draft-shifts/disabled-save-stub | Found | POST App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleDraftShiftSaveGateController@disabledStore | Open |
| hd/employee-schedules/builder/draft-save-readiness-completion | Found | GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleBuilderDraftSaveReadinessCompletionController@index | Open |
| hd/employee-schedules/builder/draft-save-dry-run-preview | Found | GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleBuilderDraftSaveDryRunPreviewController@index | Open |
| hd/employee-schedules/production | Found | GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleProductionRouteRescueController@index | Open |
| hd/employee-schedules/employee-portal | Found | GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleSimplifiedPortalController@index | Open |