Roster with a rest-hours check
Shifts hang off a site and a post. Creating or moving a shift runs the check the planner shows in advance: 12 consecutive hours of daily rest between shifts, no overlapping shifts, a maximum shift length, and a warning when a guard goes over 48 hours in a 7-day window. Blocking violations are refused unless the dispatcher forces them on purpose, so a 3 a.m. replacement can still be recorded. Weekly rest is not checked. The thresholds are settings you edit, so you can match what your local law or collective agreement requires.