<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

header("Content-Type: application/json");

$num = isset($_REQUEST['num']) ? $_REQUEST['num'] : '';
$tablename = isset($_REQUEST['tablename']) ? $_REQUEST['tablename'] : 'output';
// 날짜 필드 - 빈 문자열은 NULL로 처리 (MySQL 8.0 Strict Mode 호환)
$ACIaskDate = isset($_REQUEST['ACIaskDate']) && $_REQUEST['ACIaskDate'] !== '' ? $_REQUEST['ACIaskDate'] : null;
$ACIdoneDate = isset($_REQUEST['ACIdoneDate']) && $_REQUEST['ACIdoneDate'] !== '' ? $_REQUEST['ACIdoneDate'] : null;

// JSON 데이터를 저장할 경로 설정
$jsonFilePath = "../output/i_json/" . $num . ".json";

if (isset($_POST['iList'])) {
    $iList_jsondata = json_decode($_POST['iList'], true);
    if ($iList_jsondata === null && json_last_error() !== JSON_ERROR_NONE) {
        echo json_encode(['error' => 'Invalid JSON data provided.'], JSON_UNESCAPED_UNICODE);
        exit;
    }

    // 기존 JSON 파일 삭제
    if (file_exists($jsonFilePath)) {
        unlink($jsonFilePath); // 기존 파일 삭제
    }

    // JSON 데이터를 파일에 저장
    file_put_contents($jsonFilePath, json_encode($iList_jsondata, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
} else {
    $iList_jsondata = null;
}


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

try {
    $pdo->beginTransaction();

    // 데이터베이스에 파일 경로를 저장
    $sql = "UPDATE {$DB}.{$tablename} SET iList=?, ACIdoneDate=?, ACIaskDate=? WHERE num=? LIMIT 1";
    $stmh = $pdo->prepare($sql);

    $stmh->bindValue(1, $jsonFilePath, PDO::PARAM_STR); // JSON 파일 경로를 저장
    $stmh->bindValue(2, $ACIdoneDate, PDO::PARAM_STR);
    $stmh->bindValue(3, $ACIaskDate, PDO::PARAM_STR);
    $stmh->bindValue(4, $num, PDO::PARAM_STR);

    $stmh->execute();
    $pdo->commit();
} catch (PDOException $Exception) {
    $pdo->rollBack(); // 트랜잭션 롤백
    error_log("오류: " . $Exception->getMessage());
    echo json_encode(['error' => $Exception->getMessage()], JSON_UNESCAPED_UNICODE);
    exit;
}

$data = [
    'num' => $num,
    'iList source : ' => $_POST['iList'],
    'json_file' => $jsonFilePath,
    'iList_jsondata' => $iList_jsondata,
    'message' => 'JSON data saved to file and database updated successfully.'
];

echo json_encode($data, JSON_UNESCAPED_UNICODE);
?>
