<?php
use App\Core\Csrf;
$errors=$_SESSION['form_errors']??[];$old=$_SESSION['old']??[];unset($_SESSION['form_errors'],$_SESSION['old']);$isEdit=!empty($group);
$h=static fn($v)=>htmlspecialchars((string)$v,ENT_QUOTES,'UTF-8');
$days=['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche'];
$renderSlot=static function(string|int $index,array $v,array $professors,array $rooms,array $days,bool $edit)use($h):void{
 $p=$edit?'':'slots['.$index.'][';$s=$edit?'':']';$name=static fn($key)=>$p.$key.$s;
 ?>
 <article class="multi-slot" data-slot>
  <header><div><span class="slot-number">Créneau</span><h3 data-slot-title><?= $edit?'Créneau actuel':'Nouveau créneau' ?></h3></div><?php if(!$edit):?><button type="button" class="slot-remove" data-remove-slot>Retirer</button><?php endif?></header>
  <div class="group-form-grid">
   <label class="wide"><span>Libellé *</span><input required name="<?=$h($name('libelle'))?>" value="<?=$h($v['libelle']??'')?>" placeholder="Ex. Individuels fin d’après-midi"></label>
   <label><span>Nature *</span><select name="<?=$h($name('type_groupe'))?>"><option value="individuel" <?=($v['type_groupe']??'individuel')==='individuel'?'selected':''?>>Individuel · code IND</option><option value="collectif" <?=($v['type_groupe']??'')==='collectif'?'selected':''?>>Collectif · code COL</option></select></label>
   <label><span>Capacité</span><input type="number" min="1" name="<?=$h($name('capacite_max'))?>" value="<?=$h($v['capacite_max']??'')?>"></label>
   <label><span>Durée individuelle</span><input type="number" min="5" step="5" name="<?=$h($name('duree_creneau_minutes'))?>" value="<?=$h($v['duree_creneau_minutes']??'30')?>"><small>Durée d’une séance adhérent à l’intérieur du bloc.</small></label>
   <label><span>Professeur</span><select name="<?=$h($name('professeur_id'))?>"><option value="">Non affecté</option><?php foreach($professors as $prof):?><option value="<?=(int)$prof['id']?>" <?=(int)($v['professeur_id']??$v['professeur_principal_id']??0)===(int)$prof['id']?'selected':''?>><?=$h($prof['nom'].' '.$prof['prenom'])?></option><?php endforeach?></select></label>
   <label><span>Salle</span><select name="<?=$h($name('salle_id'))?>"><option value="">Non affectée</option><?php foreach($rooms as $room):?><option value="<?=(int)$room['id']?>" <?=(int)($v['salle_id']??0)===(int)$room['id']?'selected':''?>><?=$h($room['libelle'])?></option><?php endforeach?></select></label>
   <label><span>Jour *</span><select required name="<?=$h($name('jour_semaine'))?>"><?php foreach($days as $day):?><option value="<?=$day?>" <?=($v['jour_semaine']??'lundi')===$day?'selected':''?>><?=ucfirst($day)?></option><?php endforeach?></select></label>
   <label><span>Début *</span><input required type="time" name="<?=$h($name('heure_debut'))?>" value="<?=$h(substr((string)($v['heure_debut']??'16:30'),0,5))?>"></label>
   <label><span>Fin *</span><input required type="time" name="<?=$h($name('heure_fin'))?>" value="<?=$h(substr((string)($v['heure_fin']??'18:30'),0,5))?>"></label>
   <?php if($edit):?><label><span>Date d’effet *</span><input required type="date" name="date_effet" value="<?=date('Y-m-d')?>"></label><label class="wide"><span>Motif *</span><input required name="motif" placeholder="Changement d’horaire, salle ou professeur"></label><?php endif?>
  </div>
 </article><?php
};
?>
<link rel="stylesheet" href="/public/assets/css/cda-v6-groups.css"><link rel="stylesheet" href="/public/assets/css/cda-multi-slots-9615.css">
<section class="page-intro"><div><span class="page-kicker">AXIOM · Organisation pédagogique</span><h2><?=$isEdit?'Modifier le créneau':'Créer plusieurs créneaux'?></h2><p>Individuel et collectif peuvent se suivre sur une journée ou être répartis sur plusieurs jours.</p></div><a class="button button-secondary" href="/public/groupes">Retour</a></section>
<?php if($errors):?><div class="alert alert-error"><ul><?php foreach($errors as$error):?><li><?=$h($error)?></li><?php endforeach?></ul></div><?php endif?>
<form method="post" action="<?=$isEdit?'/public/groupes/modifier':'/public/groupes'?>" class="group-v6-form" id="multi-slot-form"><?=Csrf::field()?><?php if($isEdit):?><input type="hidden" name="id" value="<?=(int)$group['id']?>"><?php endif?>
 <section class="studio-card"><header><span>1</span><div><h3>Discipline active, cours et période</h3><p>Seuls les cours appartenant à une discipline active pour l’année sont proposés.</p></div></header><div class="group-form-grid">
 <?php if(!$isEdit):?><label class="wide"><span>Discipline active / cours *</span><select required name="atelier_id"><option value="">Choisir une discipline active</option><?php foreach($workshops as$workshop):?><option value="<?=(int)$workshop['id']?>" <?=(int)($old['atelier_id']??0)===(int)$workshop['id']?'selected':''?>><?=$h(($workshop['discipline_libelle']??'Discipline').' — '.$workshop['libelle'])?></option><?php endforeach?></select><small>Une discipline sans cours ouvert se gère d’abord dans « Disciplines & inscriptions ».</small></label><?php else:?><label class="wide"><span>Discipline / cours</span><input readonly value="<?=$h($group['discipline_libelle'].' — '.$group['atelier_libelle'])?>"></label><?php endif?>
 <label><span>Date de début *</span><input required type="date" name="date_debut" value="<?=$h($old['date_debut']??$group['date_debut']??date('Y-m-d'))?>" <?=$isEdit?'readonly':''?>></label><label><span>Date de fin</span><input type="date" name="date_fin" value="<?=$h($old['date_fin']??$group['date_fin']??'')?>"></label></div></section>
 <section class="studio-card slots-card"><header><span>2</span><div><h3>Créneaux du cours</h3><p>Chaque ligne crée un créneau lié au cours : IND/COL + code cours + jour + heure.</p></div><?php if(!$isEdit):?><button type="button" class="button button-secondary" id="add-slot">＋ Ajouter un créneau</button><?php endif?></header><div id="slot-list">
 <?php if($isEdit){$renderSlot(0,$group,$professors,$rooms,$days,true);}else{$saved=$old['slots']??[[]];foreach($saved as$i=>$values)$renderSlot((string)$i,(array)$values,$professors,$rooms,$days,false);}?>
 </div></section>
 <div class="sticky-actions"><a class="button button-secondary" href="/public/groupes">Annuler</a><button class="button button-primary"><?=$isEdit?'Enregistrer les modifications':'Créer tous les créneaux'?></button></div>
</form>
<?php if(!$isEdit):?><template id="slot-template"><?php $renderSlot('__INDEX__',[],$professors,$rooms,$days,false);?></template><script src="/public/assets/js/cda-multi-slots-9615.js"></script><?php endif?>
