CREATE TABLE IF NOT EXISTS system_error_logs (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    event_id VARCHAR(40) NOT NULL,
    request_id VARCHAR(40) NOT NULL,
    level VARCHAR(20) NOT NULL DEFAULT 'error',
    category VARCHAR(80) NOT NULL,
    message TEXT NOT NULL,
    request_method VARCHAR(16) NULL,
    request_uri VARCHAR(1000) NULL,
    user_id BIGINT UNSIGNED NULL,
    ip_address VARCHAR(64) NULL,
    user_agent VARCHAR(500) NULL,
    context_json LONGTEXT NULL,
    occurred_at DATETIME NOT NULL,
    resolved_at DATETIME NULL,
    resolved_by BIGINT UNSIGNED NULL,
    resolution_notes TEXT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY uq_system_error_logs_event_id (event_id),
    KEY idx_system_error_logs_request_id (request_id),
    KEY idx_system_error_logs_occurred_at (occurred_at),
    KEY idx_system_error_logs_category (category),
    KEY idx_system_error_logs_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
