<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
header("Content-Type: application/json");

$num = isset($_REQUEST['num']) ? $_REQUEST['num'] : '';
$tablename = isset($_REQUEST['tablename']) ? $_REQUEST['tablename'] : '';
$mode = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : '';

include '_request.php';

// json 형태는 저장할때 주의해야 한다.
if (isset($_POST['estimateList'])) {
    $estimate_jsondata = json_decode($_POST['estimateList'], true);
} else {
    $estimate_jsondata = null;
}

require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
$pdo = db_connect();  

try {
	// 수정 모드: 기존 데이터를 업데이트
	$pdo->beginTransaction();
	$sql = "UPDATE $DB.$tablename SET estimateList=? WHERE num=? LIMIT 1";
	$stmh = $pdo->prepare($sql);
	$stmh->bindValue(1, json_encode($estimate_jsondata), PDO::PARAM_STR);
	$stmh->bindValue(2, $num, PDO::PARAM_STR);
	$stmh->execute();
	$pdo->commit();
    
    // 성공적으로 작업이 완료된 후 반환할 데이터
    $data = [
        'num' => $num,
        'mode' => $mode,
        'is_deleted' => isset($is_deleted) ? $is_deleted : 0
    ];

    echo json_encode($data, JSON_UNESCAPED_UNICODE);
} catch (PDOException $Exception) {
    error_log("오류: " . $Exception->getMessage());
    http_response_code(500);
    echo json_encode(['error' => $Exception->getMessage()]);
} catch (Exception $e) {
    error_log("오류: " . $e->getMessage());
    http_response_code(500);
    echo json_encode(['error' => $e->getMessage()]);
}
?>
