<?php
require_once __DIR__ . '/../core/init.php';
header('Content-Type: application/json');

$action = $_REQUEST['action'] ?? '';
$type = $_REQUEST['type'] ?? '';

$map = [
    'category' => ['table' => 'cms_products_group', 'id_col' => 'id', 'name_col' => 'prd_group_name'],
    'unit' => ['table' => 'cms_products_unit', 'id_col' => 'id', 'name_col' => 'prd_unit_name'],
    'manufacturer' => ['table' => 'cms_products_manufacture', 'id_col' => 'id', 'name_col' => 'prd_manuf_name']
];

if (!isset($map[$type])) { exit(json_encode(['status' => 'error', 'message' => 'Loại không hợp lệ.'])); }

$table_info = $map[$type];
$table = $table_info['table'];
$id_col = $table_info['id_col'];
$name_col = $table_info['name_col'];

if ($action == 'get_list') {
    $result = $conn->query("SELECT $id_col AS id, $name_col AS name FROM $table ORDER BY $name_col ASC");
    echo json_encode(['status' => 'success', 'data' => $result->fetch_all(MYSQLI_ASSOC)]);
    exit;
}
if ($action == 'add') {
    $name = trim($_POST['name'] ?? '');
    if (empty($name)) { echo json_encode(['status' => 'error', 'message' => 'Tên không được để trống.']); exit; }
    $stmt = $conn->prepare("INSERT INTO $table ($name_col) VALUES (?)");
    $stmt->bind_param("s", $name);
    if ($stmt->execute()) {
        $new_id = $conn->insert_id;
        echo json_encode(['status' => 'success', 'message' => 'Thêm mới thành công!', 'new_item' => ['id' => $new_id, 'name' => $name]]);
    } else { echo json_encode(['status' => 'error', 'message' => 'Lỗi khi thêm mới.']); }
    $stmt->close();
    exit;
}
if ($action == 'update') {
    $id = intval($_POST['id'] ?? 0);
    $name = trim($_POST['name'] ?? '');
    if (empty($id) || empty($name)) { echo json_encode(['status' => 'error', 'message' => 'Dữ liệu không hợp lệ.']); exit; }
    $stmt = $conn->prepare("UPDATE $table SET $name_col = ? WHERE $id_col = ?");
    $stmt->bind_param("si", $name, $id);
    if ($stmt->execute()) { echo json_encode(['status' => 'success', 'message' => 'Cập nhật thành công!']); }
    else { echo json_encode(['status' => 'error', 'message' => 'Lỗi khi cập nhật.']); }
    $stmt->close();
    exit;
}

if ($action == 'delete') {
    $id = intval($_POST['id'] ?? 0);
    if (empty($id)) { echo json_encode(['status' => 'error', 'message' => 'ID không hợp lệ.']); exit; }
    $stmt = $conn->prepare("DELETE FROM $table WHERE $id_col = ?");
    $stmt->bind_param("i", $id);
    if ($stmt->execute()) { echo json_encode(['status' => 'success', 'message' => 'Xóa thành công!']); }
    else { echo json_encode(['status' => 'error', 'message' => 'Lỗi khi xóa. Đối tượng này có thể đang được sử dụng.']); }
    $stmt->close();
    exit;
}
?>