fix(salas): renomeia modelos (Hora/Período/Dia/Semana/Mês) + calendário completo

- Rótulos dos modelos: Turno→Período, Diária→Dia, Semanal→Semana, Mensal→Mês
  (ids inalterados). Label do controle "Turno" → "Período".
- Calendário cortado no wizard: as células aspect-square deixavam a grade alta
  demais p/ a área do slide; troca p/ altura fixa h-9 — a grade fica compacta e
  aparece completa.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Builder
2026-07-07 03:51:26 +02:00
parent f24a5a82e8
commit 69a0bce4d7
+6 -6
View File
@@ -109,10 +109,10 @@ const precos = (s: Sala): Array<[string, string]> => {
// ── Calendário de reserva ────────────────────────────────────────────────────
const MODELOS: Array<{ id: string; label: string; valor: keyof Sala; consulta: keyof Sala }> = [
{ id: 'hora', label: 'Hora', valor: 'valor_hora', consulta: 'hora_consulta' },
{ id: 'turno', label: 'Turno', valor: 'valor_turno', consulta: 'turno_consulta' },
{ id: 'diaria', label: 'Diária', valor: 'valor_diaria', consulta: 'diaria_consulta' },
{ id: 'semanal', label: 'Semanal', valor: 'valor_semanal', consulta: 'semanal_consulta' },
{ id: 'mensal', label: 'Mensal', valor: 'valor_mensal', consulta: 'mensal_consulta' },
{ id: 'turno', label: 'Período', valor: 'valor_turno', consulta: 'turno_consulta' },
{ id: 'diaria', label: 'Dia', valor: 'valor_diaria', consulta: 'diaria_consulta' },
{ id: 'semanal', label: 'Semana', valor: 'valor_semanal', consulta: 'semanal_consulta' },
{ id: 'mensal', label: 'Mês', valor: 'valor_mensal', consulta: 'mensal_consulta' },
];
const TURNOS: Record<string, { label: string; ini: number; fim: number }> = {
manha: { label: 'Manhã', ini: 8, fim: 12 },
@@ -488,7 +488,7 @@ const ReservaModal: React.FC<{ sala: Sala; onClose: () => void; onReserved: () =
const ocupado = diasOcupados.has(dia.toDateString());
return (
<button key={i} type="button" disabled={passado} onClick={() => setDiaSel(dia)}
className={`relative aspect-square rounded-lg text-xs font-bold flex items-center justify-center transition-all ${passado ? 'text-gray-200 cursor-not-allowed' : sel ? 'text-white shadow' : emRange ? 'text-teal-700' : 'text-gray-600 hover:bg-gray-100'}`}
className={`relative h-9 rounded-lg text-xs font-bold flex items-center justify-center transition-all ${passado ? 'text-gray-200 cursor-not-allowed' : sel ? 'text-white shadow' : emRange ? 'text-teal-700' : 'text-gray-600 hover:bg-gray-100'}`}
style={sel ? { backgroundColor: COLOR } : emRange ? { backgroundColor: `${COLOR}22` } : {}}>
{dia.getDate()}
{ocupado && !sel && <span className="absolute bottom-1 w-1 h-1 rounded-full bg-amber-400" />}
@@ -517,7 +517,7 @@ const ReservaModal: React.FC<{ sala: Sala; onClose: () => void; onReserved: () =
)}
{diaSel && f.modelo === 'turno' && (
<div>
<label className={labelCls}>Turno</label>
<label className={labelCls}>Período</label>
<div className="grid grid-cols-3 gap-2">
{Object.entries(TURNOS).map(([k, t]) => (
<button key={k} type="button" onClick={() => setTurno(k)}