HD Sports Zone Bookmark 26A-3 — Draft Save Table/Column Final Mapping / Still No Write

Final no-write mapping for the future draft-shift save table and columns. This confirms where the first real draft save should write later, but this phase still writes nothing.

Gate status: Locked / disabled by default
ENV key: HD_EMPLOYEE_SCHEDULE_DRAFT_SAVE_ENABLED / current value: false
26A-3 maps the draft-save target table and columns only. It does not insert, update, publish, text, or email.

Selected Draft Target Candidate

Tablehd_draft_shifts
ExistsYes
Rows5
Score205
ConfidenceHigh
NoteSelected as the best current draft-save target candidate. 26A-3 does not write to it.

Readiness

Status: Ready for gated first-save planning
Mapped required: 4
Missing required: 0
Mapped optional: 5
Next phase may create a first-save implementation plan, still preferably behind the disabled gate.

Safety Checks

Mapping only Passed 26A-3 maps table/columns only.
No insert/update/delete Passed Controller performs no database write statements.
No publish action Passed Employee-facing schedule is not changed.
No employee notifications Passed No text/email behavior is introduced.
Gate remains disabled by default Passed HD_EMPLOYEE_SCHEDULE_DRAFT_SAVE_ENABLED remains the safety gate.
No hard conflict blocking Passed Soft conflicts remain review-only.
No production override Passed This is a separate builder mapping support route.

Final Draft Save Column Map

Logical Field Label Required? Mapped Column Status Future Source Example Would Write Now? Next Phase Note
employee_id Employee Yes employee_id Mapped Validated request employee_id 1 No Ready for a future gated write phase after confirmation.
shift_date Shift Date Yes work_date Mapped Validated request shift_date 2026-06-05 No Ready for a future gated write phase after confirmation.
start_time Start Time Yes starts_at Mapped Validated request start_time 09:00 No Ready for a future gated write phase after confirmation.
end_time End Time Yes ends_at Mapped Validated request end_time 17:00 No Ready for a future gated write phase after confirmation.
period_id Schedule Period No schedule_period_id Mapped Optional validated request period_id 1 No Ready for a future gated write phase after confirmation.
status Draft Status No status Mapped System should set draft draft No Ready for a future gated write phase after confirmation.
role_position Role / Position No role Mapped Optional validated request role_position Lane Attendant No Ready for a future gated write phase after confirmation.
notes Notes No Not detected Optional Missing Optional validated request notes Optional manager note No Optional field can be skipped in the first real save.
created_by Created By No created_by Mapped Authenticated manager when available current user id No Ready for a future gated write phase after confirmation.
updated_by Updated By No updated_by Mapped Authenticated manager when available current user id No Ready for a future gated write phase after confirmation.

Candidate Tables — Read Only

Table Status Rows Score Columns Purpose Note
hd_draft_shifts Present 5 205 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. Candidate inspected read-only.
hd_employee_schedule_shifts Present 2 80 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. Candidate inspected read-only.
hd_schedule_periods Present 2 40 id, title, starts_on, ends_on, status, source, notes, created_by, updated_by, created_at, updated_at, deleted_at Possible schedule period table, not a shift target. Period table may support week selection but should not store individual draft shifts.
hd_schedule_shifts Missing 0 0 Not detected Possible generic schedule shift table. Table missing.
hd_employee_schedules Missing 0 0 Not detected Possible schedule header/shift table. Table missing.
hd_employee_schedule_periods Missing 0 0 Not detected Possible employee schedule period table, not a shift target. Table missing.
hd_published_shifts Present 1 0 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 shift table; should not be used by draft save. Published table is not a draft-save target.

Route Status

URI Status Action Open
hd/employee-schedules/builder/draft-shift-column-mapping Found GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleDraftShiftColumnMappingController@index Open
hd/employee-schedules/builder/draft-shift-validation Found GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleDraftShiftValidationController@index Open
hd/employee-schedules/builder/draft-shifts/validate-no-write Found POST App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleDraftShiftValidationController@validateNoWrite 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/production Found GET App\Http\Controllers\Hd\EmployeeSchedules\EmployeeScheduleProductionRouteRescueController@index Open