feat(planning): roulements éditables en base (CRUD + page /planning/roulements)#142
Merged
Conversation
…oulements) Les roulements ne sont plus hardcodés dans apply-rotation : table `rotations` (name unique, weeks jsonb — cycle de 1 à 12 semaines, clés = employees.id) qui devient la source de vérité. Une « exception » (semaine spéciale, vacances…) se modélise comme un roulement d'une semaine appliqué sur la plage voulue. - Schéma + service CRUD (lib/db/services/rotations.ts) avec sanitize des semaines et seed idempotent : les anciens templates Standard/Piscine (post-#141 : Nassuif permanence, Maxime temps plein) résolus nom→employeeId. Prod déjà seedée (table créée + INSERT, ON CONFLICT DO NOTHING). - API /api/rotations (GET liste + seed, POST) et /api/rotations/[id] (PUT, DELETE), gardées withPlanningAccess / withPlanningEditor. - apply-rotation : body { rotationId } (rétro-compat mode standard/piscine → roulement seedé du même nom) ; application par employeeId. - Page /planning/roulements : sélection/création/duplication/renommage/ suppression, onglets semaines (+/-), grille employés × jours avec éditeur de cellule (presets 9-17/8-16/10-18/13-21/16-21, horaire libre, repos), lecture seule pour les non-editors. Ajoutée à la sous-nav Planning. - Sidebar planning : sélecteur de roulement (liste DB) + lien « Gérer les roulements » à la place des deux boutons hardcodés. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Système de roulements éditables
Les templates 3 semaines hardcodés d'
apply-rotationsont remplacés par une tablerotations(source de vérité) : un roulement = un cycle de 1 à 12 semaines (weeksjsonb, clés =employees.id), qui se répète sur la plage d'application. Une exception (semaine spéciale, vacances, jour férié…) = un roulement d'une seule semaine appliqué sur la période concernée.Nouveautés
/planning/roulements(sous-nav Planning) : liste des roulements, création (vierge ou duplication), renommage, suppression ; onglets de semaines (ajout/retrait) ; grille employés × jours, chaque cellule s'édite en un clic (presets 9h-17h / 8h-16h / 10h-18h / 13h-21h / 16h-21h, horaire libre, repos). Lecture seule pour les non-editors.GET/POST /api/rotations,PUT/DELETE /api/rotations/[id]— gardéeswithPlanningAccess/withPlanningEditor, validation/sanitize des semaines.{ rotationId }(rétro-compatmode→ roulement seedé du même nom), application paremployeeId.Seed & données
employeeId.StandardetPiscine, 3 semaines chacune).Validation
pnpm test33/33 ;pnpm buildOK.🤖 Generated with Claude Code