*/ public static function document(): array { $notifications = Notification_Service::settings(); $build = Build::identity(); $storage = (new Review_Service())->storage_status(); return array( 'schema' => 'commentmate-diagnostics/v1', 'generatedAt' => gmdate('c'), 'plugin' => array( 'name' => 'CommentMate', 'stableIdentifier' => defined('COMMENTMATE_BASENAME') ? COMMENTMATE_BASENAME : 'commentmate/commentmate.php', 'version' => COMMENTMATE_VERSION, 'build' => array( 'sourceSha' => (string) ($build['source_sha'] ?? 'unknown'), 'payloadDigest' => (string) ($build['payload_digest'] ?? 'unknown'), 'builtAt' => (string) ($build['built_at'] ?? 'unknown'), ), ), 'environment' => array( 'wordpressVersion' => function_exists('get_bloginfo') ? (string) get_bloginfo('version') : 'unknown', 'phpVersion' => PHP_VERSION, 'multisite' => function_exists('is_multisite') && is_multisite(), 'environmentType' => function_exists('wp_get_environment_type') ? (string) wp_get_environment_type() : 'unknown', ), 'notifications' => array( 'enabled' => !empty($notifications['enabled']), 'dailySummary' => !empty($notifications['daily_summary']), 'immediateAlerts' => !empty($notifications['immediate_alerts']), 'detailLevel' => (string) ($notifications['detail_level'] ?? 'activity'), 'recipientCount' => count((array) ($notifications['recipients'] ?? array())), ), 'storage' => array( 'usedBytes' => (int) ($storage['usedBytes'] ?? 0), 'limitBytes' => (int) ($storage['limitBytes'] ?? 0), 'acceptingFiles' => !empty($storage['acceptingFiles']), 'warning' => (string) ($storage['warning'] ?? 'unknown'), ), 'compatibility' => Compatibility_Service::summary(), ); } }