Read-only mapping audit for future employee-only schedule access. This page shows structural counts and mapping health only. It does not expose employee names/emails, enforce permissions, change auth, edit middleware, write data, change schedules, send notifications, or touch payroll, Time Clock, POS shifts, reservations, payments, waivers, customer profiles, exports, PDFs, CSVs, schedule locking, or hard schedule blocking.
Quick links are consolidated here so managers do not have to hunt through the larger navigation. This strip is visual only. It does not change saves, publishing, schedule rows, employee views, notifications, locking, payroll, Time Clock, POS, reservations, payments, waivers, or customer profiles.
Use this screen for the existing manager build workflow. Before publishing, review unavailable blocks and soft conflicts. After publishing, employees should use the Employee Portal, My Schedule, Weekly Schedule, or Print Weekly.
Phase 25P-1 only adds clarity and support links. It does not change draft saves, publishing, schedule locking, employee text/email notifications, payroll, Time Clock, POS shifts, reservations, payments, waivers, or customer profiles.
Before publishing, confirm the date range, employee coverage, shift times, and soft conflicts. Once published, employees should use the Employee Portal and self-view pages for their final schedule.
Phase 25P-2 adds labels and readiness guidance only. It does not change save buttons, publish buttons, schedule rows, draft data, published data, employee visibility, notifications, locking, payroll, Time Clock, POS shifts, reservations, payments, waivers, or customer profiles.
Before the manager publishes, check unavailable blocks, appointments, manager holds, duplicate shift issues, and any soft conflicts. Conflicts are still review warnings only; this does not hard-block scheduling.
Phase 25P-3 adds this publish-review callout only. It does not change save buttons, publish buttons, draft rows, published rows, employee visibility, schedule locking, employee text/email notifications, payroll, Time Clock, POS shifts, reservations, payments, waivers, or customer profiles.
After the manager publishes, employees should use Employee Portal, My Schedule, Weekly Schedule, or Print Weekly. Managers should avoid sending employees to builder, diagnostics, route catalogs, checklists, or developer tools.
Phase 25P-4 adds this reminder only. It does not change publish behavior, employee schedule data, employee permissions, schedule locking, employee text/email notifications, payroll, Time Clock, POS shifts, reservations, payments, waivers, or customer profiles.
Generated Jun 5, 2026 12:20 AM
Counts only. No permissions, auth, or data are changed.
Potential user/employee/staff identity tables detected.
Potential identity columns found on published shifts.
Mapping paths where both sides of the relationship exist.
High-confidence paths available for future review.
Best detected distinct shift identity match rate.
| Mapping | Confidence | Status | Shift Values | Matched | Coverage | Notes |
|---|---|---|---|---|---|---|
|
Published Shifts user_id → Users id hd_published_shifts.user_id → users.id |
High |
Unavailable
Shift side: no; Identity side: yes |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Best option if schedules store the authenticated user id directly. |
|
Published Shifts employee_id → Employees id hd_published_shifts.employee_id → employees.id |
High |
Unavailable
Shift side: yes; Identity side: no |
Assigned rows: 1 Distinct values: 1 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 1 |
0.0% | Best option if employees table is the active staff roster. |
|
Published Shifts employee_id → HD Employees id hd_published_shifts.employee_id → hd_employees.id |
High |
Strong Match
Shift side: yes; Identity side: yes |
Assigned rows: 1 Distinct values: 1 |
Matched rows: 1 Matched distinct: 1 Unmatched distinct: 0 |
100.0% | Best option if hd_employees is the active HD-specific roster. |
|
Published Shifts staff_id → Staff id hd_published_shifts.staff_id → staff.id |
Medium |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible option if schedule rows are assigned to staff records. |
|
Published Shifts staff_id → HD Staff id hd_published_shifts.staff_id → hd_staff.id |
Medium |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible option if schedule rows are assigned to HD staff records. |
|
Published Shifts user_id → Employees user_id hd_published_shifts.user_id → employees.user_id |
Medium |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible bridge if employees table links back to users through user_id. |
|
Published Shifts user_id → HD Employees user_id hd_published_shifts.user_id → hd_employees.user_id |
Medium |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible bridge if hd_employees links back to users through user_id. |
|
Published Shifts user_id → Staff user_id hd_published_shifts.user_id → staff.user_id |
Low |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible bridge only if staff records link back to users. |
|
Published Shifts user_id → HD Staff user_id hd_published_shifts.user_id → hd_staff.user_id |
Low |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible bridge only if HD staff records link back to users. |
|
Published Shifts employee_id → Users employee_id hd_published_shifts.employee_id → users.employee_id |
Medium |
Unavailable
Shift side: yes; Identity side: no |
Assigned rows: 1 Distinct values: 1 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 1 |
0.0% | Possible direct user bridge if users table stores employee_id. |
|
Published Shifts staff_id → Users staff_id hd_published_shifts.staff_id → users.staff_id |
Medium |
Unavailable
Shift side: no; Identity side: no |
Assigned rows: 0 Distinct values: 0 |
Matched rows: 0 Matched distinct: 0 Unmatched distinct: 0 |
0.0% | Possible direct user bridge if users table stores staff_id. |
| Table | Status | Rows | Detected Columns |
|---|---|---|---|
|
Users users |
Present | 0 |
Identity:
id Profile: name, email Status: none |
|
Employees employees |
Missing | 0 |
Identity:
none Profile: none Status: none |
|
HD Employees hd_employees |
Present | 4 |
Identity:
id Profile: first_name, last_name, display_name, email Status: status |
|
Staff staff |
Missing | 0 |
Identity:
none Profile: none Status: none |
|
HD Staff hd_staff |
Missing | 0 |
Identity:
none Profile: none Status: none |
| Column | Status | Non-Null | Distinct |
|---|---|---|---|
|
User ID hd_published_shifts.user_id |
Not Detected | 0 | 0 |
|
Employee ID hd_published_shifts.employee_id |
Present | 1 | 1 |
|
Staff ID hd_published_shifts.staff_id |
Not Detected | 0 | 0 |
|
Published Period ID hd_published_shifts.published_schedule_period_id |
Present | 1 | 1 |
|
Source Period ID hd_published_shifts.source_schedule_period_id |
Present | 1 | 1 |
|
Work Date hd_published_shifts.work_date |
Present | 1 | 1 |
|
Starts At hd_published_shifts.starts_at |
Present | 1 | 1 |
|
Ends At hd_published_shifts.ends_at |
Present | 1 | 1 |
| Area | Critical | Method | Status | URI |
|---|---|---|---|---|
| User Mapping Audit | Critical | GET | Detected | hd/employee-schedules/user-mapping-audit |
| Employee Portal User Mapping Audit | Critical | GET | Detected | hd/employee-schedules/employee-portal/user-mapping-audit |
| Access Prep | Critical | GET | Detected | hd/employee-schedules/access-prep |
| Completion | Optional | GET | Detected | hd/employee-schedules/completion |
| Scheduling Hub | Critical | GET | Detected | hd/employee-schedules/hub |
| Employee Portal | Critical | GET | Detected | hd/employee-schedules/employee-portal |
| My Schedule | Critical | GET | Detected | hd/employee-schedules/employee-portal/my-schedule |
| Weekly View | Critical | GET | Detected | hd/employee-schedules/employee-portal/weekly |
| Weekly Print | Optional | GET | Detected | hd/employee-schedules/employee-portal/weekly/print |
| File | Status |
|---|---|
|
User Mapping Audit Controller /home/at4txjiyemp4/public_html/hdsportszone.com/app/Http/Controllers/Hd/EmployeeSchedules/EmployeeScheduleUserMappingAuditController.php |
Present |
|
User Mapping Audit View /home/at4txjiyemp4/public_html/hdsportszone.com/resources/views/hd/employee_schedules/navigation/user_mapping_audit.blade.php |
Present |
|
Access Prep Controller /home/at4txjiyemp4/public_html/hdsportszone.com/app/Http/Controllers/Hd/EmployeeSchedules/EmployeeScheduleAccessPrepController.php |
Present |
|
Clean Navigation Partial /home/at4txjiyemp4/public_html/hdsportszone.com/resources/views/hd/employee_schedules/_clean_nav.blade.php |
Present |
|
Navigation Route File /home/at4txjiyemp4/public_html/hdsportszone.com/routes/hd_employee_schedule_navigation.php |
Present |
| Table | Status | Rows | Purpose |
|---|---|---|---|
|
Users users |
Present | 0 | Possible login identity source. |
|
Employees employees |
Not Detected | 0 | Possible employee profile source. |
|
HD Employees hd_employees |
Present | 4 | Possible HD employee profile source. |
|
Staff staff |
Not Detected | 0 | Possible staff profile source. |
|
HD Staff hd_staff |
Not Detected | 0 | Possible HD staff profile source. |
|
Published Shifts hd_published_shifts |
Present | 1 | Employee portal published shift source. |
|
Published Schedule Periods hd_published_schedule_periods |
Present | 1 | Published period source. |