37 lines
1.3 KiB
PHP
37 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* modules/turnero/api/save_prioridad.php
|
|
* POST {id, nombre, color, orden_peso, activo} → actualizar prioridad existente
|
|
* (Las prioridades no se crean ni eliminan vía API — se gestionan en la migración)
|
|
*/
|
|
require_once __DIR__ . '/_helpers.php';
|
|
|
|
requireTurnero();
|
|
requireMethod('POST');
|
|
|
|
$input = inputJson();
|
|
|
|
$id = (int)($input['id'] ?? 0);
|
|
$nombre = trim($input['nombre'] ?? '');
|
|
$color = trim($input['color'] ?? '#6b7280');
|
|
$icono = trim($input['icono'] ?? null) ?: null;
|
|
$descripcion = trim($input['descripcion'] ?? null) ?: null;
|
|
$ordenPeso = (int)($input['orden_peso'] ?? 1);
|
|
$activo = (int)($input['activo'] ?? 1);
|
|
|
|
if (!$id) jsonError('ID requerido');
|
|
if ($nombre === '') jsonError('El nombre es requerido');
|
|
if ($ordenPeso < 1) jsonError('El orden debe ser mayor a 0');
|
|
if (!preg_match('/^#[0-9a-f]{6}$/i', $color)) jsonError('Color hexadecimal inválido (formato: #RRGGBB)');
|
|
|
|
$stmt = db()->prepare(
|
|
'UPDATE turnero_prioridades SET nombre=?, color=?, icono=?, descripcion=?, orden_peso=?, activo=? WHERE id=?'
|
|
);
|
|
$stmt->execute([$nombre, $color, $icono, $descripcion, $ordenPeso, $activo, $id]);
|
|
|
|
if ($stmt->rowCount() === 0) {
|
|
jsonError('Prioridad no encontrada', 404);
|
|
}
|
|
|
|
jsonOk(['id' => $id], 'Prioridad actualizada');
|