<?php
// 1. Bật hiển thị lỗi tối đa
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once "../Config/DB.php"; 
require_once "../Class/ACB.php"; 

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

// Kiểm tra kết nối Database
if ($conn->connect_error) {
    ob_clean();
    die(json_encode(['status' => 'error', 'msg' => 'Lỗi kết nối DB: ' . $conn->connect_error]));
}

function correctNameOrder($reversedName) {
    $reversedName = trim(strtoupper($reversedName ?? ''));
    $parts = preg_split('/\s+/', $reversedName, -1, PREG_SPLIT_NO_EMPTY);
    if (count($parts) < 2) return $reversedName; 
    $firstWord = array_shift($parts); 
    return implode(' ', $parts) . ' ' . $firstWord;
}

if (isset($_POST['type']) && $_POST['type'] == 'Login') {
    // Sửa lỗi: Đồng bộ kiểm tra đúng session user_id
    if (empty($_SESSION['user_id'])) {
        ob_clean();
        die(json_encode(['status' => 'error', 'msg' => 'Hết hạn phiên đăng nhập!']));
    }

    $user_id = (int)$_SESSION['user_id'];
    
    // Đã sửa: Truy vấn chính xác theo cột id (tránh lỗi lấy nhầm username)
    $user_info = $conn->query("SELECT * FROM users WHERE id = '$user_id'")->fetch_assoc();

    if (!$user_info) {
        ob_clean();
        die(json_encode(['status' => 'error', 'msg' => 'Tài khoản không tồn tại trên hệ thống!']));
    }

    // --- 🛡️ LỚP CHẶN KIỂM TRA BẢO HỘ VIP ---
    $current_time = time();
    $vip_package = strtoupper($user_info['vip_package'] ?? 'FREE');
    $vip_expired_str = $user_info['vip_expired'] ?? '';
    $vip_expired_ts = !empty($vip_expired_str) ? strtotime($vip_expired_str) : 0;

    // Nếu là thành viên FREE hoặc gói VIP hiện tại đã hết hạn sử dụng
    if ($vip_package === 'FREE' || $vip_expired_ts <= $current_time) {
        ob_clean();
        die(json_encode([
            'status' => 'error', 
            'msg' => 'Chức năng thêm Bank chỉ dành cho thành viên VIP còn hạn! Vui lòng nâng cấp gói VIP để mở khóa.'
        ]));
    }

    // Nhận dữ liệu kết nối ngân hàng (Đã xóa bỏ hoàn toàn phần biến $months và $price tính phí lặt vặt)
    $u_login = mysqli_real_escape_string($conn, $_POST['acb_user'] ?? '');
    $p_login = mysqli_real_escape_string($conn, $_POST['acb_pass'] ?? '');
    $stk     = mysqli_real_escape_string($conn, $_POST['acb_stk'] ?? '');

    if (empty($u_login) || empty($p_login) || empty($stk)) {
        ob_clean();
        die(json_encode(['status' => 'error', 'msg' => 'Vui lòng điền đầy đủ thông tin tài khoản Bank!']));
    }
    
    $ACB = new ACB();
    $check = $ACB->login($u_login, $p_login);

    if (isset($check['accessToken'])) {
        $token = $check['accessToken'];
        $name_api = $check['identity']['displayName'] ?? 'KHACH HANG';
        $raw_name = correctNameOrder($name_api); 
        
        // Lấy số dư
        $balance = 0;
        $data_balance = $ACB->getsodu($token);
        if(isset($data_balance['data'][0]['balance'])) {
            $balance = $data_balance['data'][0]['balance'];
        }

        // --- 📅 ĐỒNG BỘ THỜI GIAN THEO VIP ---
        $date_now = date("Y-m-d H:i:s"); 
        // Thời hạn của cổng Bank được ép thẳng theo ngày hết hạn của gói VIP user
        $date_expired = $vip_expired_str; 

        // --- GIAO DỊCH SQL (MIỄN PHÍ - KHÔNG TRỪ TIỀN) ---
        $api_key = strtoupper(substr(md5(microtime() . $stk), 0, 16));
        $sql = "INSERT INTO account_acb 
                (user_id, acb_user, acb_pass, acb_stk, acb_name, balance, api_key, token, time, date_create, date_expired) 
                VALUES 
                ('".$user_info['id']."', '$u_login', '$p_login', '$stk', '$raw_name', '$balance', '$api_key', '$token', '".time()."', '$date_now', '$date_expired')";
        
        if ($conn->query($sql)) {
            ob_clean(); 
            echo json_encode([
                'status' => 'success', 
                'msg' => 'Kết nối thành công! Hạn dùng cổng Bank đồng bộ theo thời hạn VIP: '.date("d/m/Y H:i", $vip_expired_ts)
            ]);
        } else {
            ob_clean();
            echo json_encode(['status' => 'error', 'msg' => 'Lỗi SQL: ' . $conn->error]);
        }
    } else {
        ob_clean();
        $err_msg = $check['description'] ?? 'Sai tài khoản hoặc mật khẩu Bank!';
        echo json_encode(['status' => 'error', 'msg' => $err_msg]);
    }
} else {
    ob_clean();
    echo json_encode(['status' => 'error', 'msg' => 'Yêu cầu không hợp lệ!']);
}
