Files
mini/src/pages/admin/substation-status.astro

213 lines
9.3 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
import AdminLayout from '../../layouts/AdminLayout.astro';
---
<AdminLayout title="Sub-Station Status">
<div class="space-y-8">
<div>
<h1 class="text-4xl font-bold text-gold-500 mb-2">🎛️ Sub-Station Status</h1>
<p class="text-gray-400">Monitor all system sub-stations and services</p>
</div>
<!-- Status Overview -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Intelligence Station -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="text-3xl">🧠</div>
<h3 class="text-xl font-bold text-gold-500">Intelligence Station</h3>
</div>
<span class="px-3 py-1 bg-green-500/20 text-green-400 rounded-full text-sm font-semibold">ACTIVE</span>
</div>
<div class="space-y-3">
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Avatar Engine</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">12 avatars loaded</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Geo Intelligence</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">5,234 locations indexed</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Pattern Analyzer</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">28 active patterns</div>
</div>
</div>
</div>
<!-- Production Station -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="text-3xl">⚡</div>
<h3 class="text-xl font-bold text-gold-500">Production Station</h3>
</div>
<span class="px-3 py-1 bg-green-500/20 text-green-400 rounded-full text-sm font-semibold">ACTIVE</span>
</div>
<div class="space-y-3">
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Content Generator</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">Worker idle, ready</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">BullMQ Worker</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">0 jobs in queue</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Spintax Engine</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">Ready for processing</div>
</div>
</div>
</div>
<!-- WordPress Ignition -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="text-3xl">🔌</div>
<h3 class="text-xl font-bold text-gold-500">WordPress Ignition</h3>
</div>
<span class="px-3 py-1 bg-yellow-500/20 text-yellow-400 rounded-full text-sm font-semibold">STANDBY</span>
</div>
<div class="space-y-3">
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">WP Connection</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Ready</span>
</div>
</div>
<div class="text-xs text-gray-500">Not configured</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Sync Engine</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-gray-500"></div>
<span class="text-xs text-gray-500">Idle</span>
</div>
</div>
<div class="text-xs text-gray-500">No active syncs</div>
</div>
</div>
</div>
</div>
<!-- Core Services -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<h2 class="text-2xl font-bold text-gold-500 mb-6">🔧 Core Services</h2>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Core API</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Online</span>
</div>
</div>
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Database</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Connected</span>
</div>
</div>
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Redis Queue</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Active</span>
</div>
</div>
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Astro Server</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Running</span>
</div>
</div>
</div>
</div>
<!-- Implementation Note -->
<div class="bg-blue-500/10 border border-blue-500/30 rounded-xl p-6">
<div class="flex items-start gap-4">
<div class="text-2xl"></div>
<div>
<h3 class="font-semibold text-blue-400 mb-2">Real-Time Status API Required</h3>
<p class="text-sm text-gray-400 mb-3">
This page requires health check endpoints for each service.
</p>
<p class="text-sm text-gray-400">
<strong>API Endpoints:</strong>
</p>
<ul class="text-sm text-gray-400 space-y-1 list-disc list-inside mt-2">
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/intelligence</code></li>
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/production</code></li>
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/wordpress</code></li>
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/core</code></li>
</ul>
</div>
</div>
</div>
</div>
</AdminLayout>
<script>
// Placeholder for health check polling
async function pollHealthStatus() {
// Will poll health endpoints every 5 seconds
console.log('Health check polling placeholder');
}
setInterval(pollHealthStatus, 5000);
</script>