Schemaläggning
Drag-and-drop weekly schema med kollektivavtal-validering i realtid. Designat för skiftledare som lägger schema en gång i veckan och vill vara klara på 15 minuter.
Datamodell
Schema består av Shift per anställd per dag. Varje shift har en typ (day, evening, night, custom), starttid, sluttid och en optionell brytid.
interface Shift {
id: string;
employeeId: string;
type: "day" | "evening" | "night" | "custom";
start: string; // ISO 8601 with Europe/Stockholm offset
end: string;
breakMinutes: number;
state: "draft" | "published" | "confirmed";
cbaVerdict?: Verdict; // from @daros/cba
}Drag-and-drop schema
På /v2/scheduleser ni en vecka i taget. Anställda ligger i en sidopanel; drag dem till en cell för att skapa ett skift. Varje drag triggar CBA-motorn (verdict <50ms) och resultatet visas som en färgad ram:
- Grön — CBA OK, schemat kan sparas
- Gul — täckningsvarning eller liten regelfråga, spara går men en flagga skrivs
- Röd — avtalsbrott, schemat kan inte sparas utan en motivering
Skiftmallar
Spara en hel vecka som en mall under Schedule → Templates. Nästa vecka klickar du Applicera mall och allt fylls i — bara att justera enskilda celler.
Mallar är per avdelning. Verkstad B · Standardvecka ser annorlunda ut än Lager · Skift 3.
Skiftbyten
Anställda kan begära skiftbyten direkt i mobilappen. Den som vill byta skickar en förfrågan, mottagaren godkänner, och skiftledaren ser hela flödet i /schedule/swaps och godkänner slutligen.
Vid godkännande kör motorn igenom CBA-verdict på båda anställdas omgjorda veckor — så ett byte aldrig kan skapa ett dolt avtalsbrott.
Realtidsuppdateringar
Schema-griden lyssnar på en WebSocket-kanal schedule:<departmentId>. När en annan skiftledare ändrar samma vecka uppdateras din vy direkt utan reload. Konflikter löses optimistiskt — senare ändringen vinner men en notis skickas till den första editorn.