<?php 
if ( ! defined( 'ABSPATH' ) ) exit; // Thoát nếu truy cập trực tiếp
class AIautoTool_log {
    private $aiautotool_logall;
    public function __construct() {
        $this->aiautotool_logall = get_option('aiautotool_logall', array());
    }
    public function set_log($log_type, $data) {
        $time = current_time('mysql');

        if (!isset($this->aiautotool_logall[$log_type])) {
            $this->aiautotool_logall[$log_type] = array();
        }

        $this->aiautotool_logall[$log_type][] = array(
            'time' => $time,
            'data' => $data,
        );
        update_option('aiautotool_logall', $this->aiautotool_logall);
    }
    public function get_log($log_type = '') {
        if (empty($log_type)) {
            return $this->aiautotool_logall;
        }
        if (isset($this->aiautotool_logall[$log_type])) {
            return $this->aiautotool_logall[$log_type];
        }
        return array();
    }
    private function sort_logs_by_time($logs) {
        // Sử dụng array_multisort để sắp xếp mảng theo thời gian giảm dần
        array_multisort(array_column($logs, 'time'), SORT_DESC, $logs);

        return $logs;
    }
    private function display_table($data) {
        if (!is_object($data)) {
            return ''; // Nếu không phải là đối tượng, trả về chuỗi trống
        }
        
        $table_html = '<div class="aiautotool-log-data">';
        
        // Duyệt qua thuộc tính của đối tượng và thêm vào table
        foreach ($data as $key => $value) {
            $key_label = '<span class="aiautotool-log-key">' . esc_html($key) . '</span>';
            
            if($key == 'post_id'){
                $permalink = get_permalink($value);
                $value_html = '<a href="' . esc_url($permalink) . '" target="_blank" class="aiautotool-log-link">' . esc_html($value) . ' <i class="fa-solid fa-external-link-alt"></i></a>';
            } else if($key == 'post_title'){
                $value_html = '<span class="aiautotool-log-value-title">' . esc_html($value) . '</span>';
            } else {
                $value_html = '<span class="aiautotool-log-value">' . esc_html($value) . '</span>';
            }
            
            $table_html .= '<div class="aiautotool-log-item">';
            $table_html .= $key_label . ': ' . $value_html;
            $table_html .= '</div>';
        }

        $table_html .= '</div>';
        return $table_html;
    }
    public function show_log($log_type) {
        // Lấy mảng log_type tương ứng
        $logs = $this->get_log($log_type);
        $logs = $this->sort_logs_by_time($logs);
        // Hiển thị bảng log
        echo '<table class="widefat fixed">';
        echo '<thead><tr><th>Time</th><th>Data</th></tr></thead>';
        echo '<tbody>';

        // Hiển thị từng dòng log
        if (empty($logs)) {
            echo '<tr><td colspan="2" style="text-align: center; padding: 40px; color: #adb5bd; font-style: italic;">';
            echo esc_html__('No logs available', 'ai-auto-tool');
            echo '</td></tr>';
        } else {
            foreach ($logs as $log) {
                echo '<tr>';
                echo '<td>' . esc_html($log['time']) . '</td>';
                echo '<td>' . $this->display_table((Object)$log['data']) . '</td>';
                echo '</tr>';
            }
        }

        echo '</tbody></table>';
    }
}