getConnection(); $id = isset($_POST['id']) && is_numeric($_POST['id']) ? (int)$_POST['id'] : null; $name = trim($_POST['name'] ?? ''); $description = trim($_POST['description'] ?? '') ?: null; if ($name === '') { echo json_encode(['success' => false, 'message' => 'Il nome è obbligatorio.']); exit; } if (mb_strlen($name) > 255) { echo json_encode(['success' => false, 'message' => 'Il nome supera 255 caratteri.']); exit; } if ($id) { $stmt = $pdo->prepare("SELECT id FROM scad_functions WHERE name = ? AND id <> ?"); $stmt->execute([$name, $id]); } else { $stmt = $pdo->prepare("SELECT id FROM scad_functions WHERE name = ?"); $stmt->execute([$name]); } if ($stmt->fetch()) { echo json_encode(['success' => false, 'message' => 'Esiste già una funzione con questo nome.']); exit; } if ($id) { $stmt = $pdo->prepare(" UPDATE scad_functions SET name = ?, description = ? WHERE id = ? "); $stmt->execute([$name, $description, $id]); $savedId = $id; } else { $stmt = $pdo->prepare(" INSERT INTO scad_functions (name, description, status) VALUES (?, ?, 'active') "); $stmt->execute([$name, $description]); $savedId = (int)$pdo->lastInsertId(); } echo json_encode([ 'success' => true, 'message' => $id ? 'Funzione aggiornata.' : 'Funzione creata.', 'id' => $savedId, 'name' => $name, 'description' => $description, ]); } catch (Exception $e) { echo json_encode(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]); }