prep: Trinity Console infrastructure ready for Gemini implementation
WHAT WAS PREPARED: Monorepo structure, database migrations, documentation, and deployment checklist ready for Gemini's complete Trinity Console code delivery. DIRECTORY STRUCTURE CREATED: - src/routes/admin/ (admin routes) - src/views/admin/ (EJS templates for all pages) - src/views/components/ (reusable EJS components) - src/public/css/ (Tailwind CSS) - src/public/js/ (htmx + utilities) DATABASE MIGRATION: - migrations/trinity-console.sql - New tables: player_history, admin_audit_log, banned_users - Enhanced subscriptions: MRR, grace period, referrals - Indexes for performance - Complete schema documentation PACKAGE.JSON UPDATES: - Added EJS ^3.1.9 for server-side templating - Updated description to include Trinity Console - Ready for htmx (will be added to public/js) DOCUMENTATION: - TRINITY-CONSOLE.md: Complete feature overview, tech stack, philosophy - DEPLOYMENT-CHECKLIST.md: Step-by-step deployment guide for tomorrow - Covers all 10 deployment steps from database migration to go-live - Includes rollback plan, success criteria, testing procedures GEMINI CONSULTATION: Comprehensive implementation request sent to Gemini asking for: - Complete code for ALL THREE PHASES - All Express routes (dashboard, players, servers, financials, etc.) - All EJS views and components - Database migration SQL (already created) - htmx integration for reactive UI - Tailwind CSS styling - Server-Sent Events for real-time updates - Complete deployment guide FEATURES REQUESTED: Phase 1: Player table, server matrix, force sync, stats dashboard Phase 2: Grace period tracking, ban list, role audit, alerts Phase 3: Revenue analytics, player history, audit log, skins, export tools ARCHITECTURE DECISIONS (from Gemini): - Stay in Arbiter 3.0 (don't build separate app) - Use htmx for SPA-like reactivity (NO build pipeline for RV) - Use EJS for server-side rendering - Use Tailwind CSS for styling - Use SSE for real-time updates - Server-side pagination (don't load 500+ players) - 60-second Panel API caching (prevent rate limits) - Low-bandwidth RV mode (text-only view) DEPLOYMENT TIMELINE: - Tonight: Receive Gemini's complete code - Tomorrow 8am: Deploy database migration - Tomorrow 9am: Deploy code + npm install - Tomorrow 10am-2pm: Feature testing - Tomorrow 6pm: Go live for Trinity SOFT LAUNCH IMPACT: Trinity Console is NOT a blocker for soft launch (April 15). Arbiter 3.0 already handles subscriptions, whitelists, and Discord roles. Trinity Console adds operational intelligence, admin tools, and analytics. Deploy early to battle-test before first real subscribers. PHILOSOPHY: "Fire + Frost + Foundation = Where Love Builds Legacy" Built to be maintainable from an RV, scalable to hundreds of subscribers, and designed to last decades. FILES ADDED: - TRINITY-CONSOLE.md (complete documentation) - DEPLOYMENT-CHECKLIST.md (deployment guide) - migrations/trinity-console.sql (database schema) - src/routes/admin/index.js (placeholder for Gemini's code) - package.json (added EJS dependency) NEXT STEPS: 1. Receive complete implementation from Gemini 2. Populate src/routes/admin/* with Gemini's code 3. Populate src/views/admin/* with Gemini's EJS templates 4. Add htmx.min.js to src/public/js/ 5. Deploy tomorrow morning Signed-off-by: The Golden Chronicler <claude@firefrostgaming.com>
This commit is contained in:
265
services/arbiter-3.0/DEPLOYMENT-CHECKLIST.md
Normal file
265
services/arbiter-3.0/DEPLOYMENT-CHECKLIST.md
Normal file
@@ -0,0 +1,265 @@
|
||||
# Trinity Console - Deployment Checklist
|
||||
|
||||
## Pre-Deployment (Tonight)
|
||||
|
||||
- [x] Monorepo directory structure created
|
||||
- [x] Database migration file created
|
||||
- [x] Package.json updated with EJS
|
||||
- [x] README documentation created
|
||||
- [ ] Receive complete code from Gemini
|
||||
- [ ] Review all files for completeness
|
||||
- [ ] Test locally (optional)
|
||||
|
||||
## Deployment Day (Tomorrow Morning)
|
||||
|
||||
### Step 1: Database Migration (8:00 AM)
|
||||
```bash
|
||||
# SSH to Command Center
|
||||
ssh root@63.143.34.217
|
||||
|
||||
# Run migration
|
||||
sudo -u postgres psql -d arbiter_db -f /opt/arbiter-3.0/migrations/trinity-console.sql
|
||||
|
||||
# Verify tables created
|
||||
sudo -u postgres psql -d arbiter_db -c "\dt"
|
||||
|
||||
# Check new columns
|
||||
sudo -u postgres psql -d arbiter_db -c "\d subscriptions"
|
||||
```
|
||||
|
||||
**Expected output:** 4 new tables, 6 new columns in subscriptions
|
||||
|
||||
### Step 2: Code Deployment (8:30 AM)
|
||||
```bash
|
||||
# Pull from monorepo
|
||||
cd /opt/arbiter-3.0
|
||||
git pull origin main
|
||||
|
||||
# Install new dependencies
|
||||
npm install
|
||||
|
||||
# Verify EJS installed
|
||||
npm list ejs
|
||||
```
|
||||
|
||||
### Step 3: Configuration (9:00 AM)
|
||||
```bash
|
||||
# No .env changes needed (uses existing ADMIN_USERS)
|
||||
# Verify admin IDs are set
|
||||
grep ADMIN_USERS /opt/arbiter-3.0/.env
|
||||
```
|
||||
|
||||
### Step 4: Service Restart (9:15 AM)
|
||||
```bash
|
||||
# Restart Arbiter 3
|
||||
sudo systemctl restart arbiter-3
|
||||
|
||||
# Check logs for errors
|
||||
sudo journalctl -u arbiter-3 -f
|
||||
```
|
||||
|
||||
**Watch for:**
|
||||
- "Trinity Console routes mounted" (or similar)
|
||||
- No errors about missing views
|
||||
- Port 3500 listening
|
||||
|
||||
### Step 5: Access Testing (9:30 AM)
|
||||
1. Visit: https://discord-bot.firefrostgaming.com/admin
|
||||
2. Should redirect to Discord OAuth if not logged in
|
||||
3. After OAuth, should show Trinity Console dashboard
|
||||
4. Verify Trinity access (Michael, Meg, Holly only)
|
||||
5. Try non-Trinity user (should get 403)
|
||||
|
||||
### Step 6: Feature Testing (10:00 AM - 12:00 PM)
|
||||
|
||||
**Dashboard:**
|
||||
- [ ] Stats cards showing correct counts
|
||||
- [ ] MRR calculation accurate
|
||||
- [ ] Servers online count correct
|
||||
- [ ] Dark mode toggle works
|
||||
|
||||
**Players:**
|
||||
- [ ] Table loads with all whitelisted players
|
||||
- [ ] Sort by username works
|
||||
- [ ] Sort by tier works
|
||||
- [ ] Sort by date works
|
||||
- [ ] Search filters correctly
|
||||
- [ ] Pagination works (if >20 players)
|
||||
- [ ] Edit tier dropdown shows all 10 tiers
|
||||
- [ ] Changing tier updates database
|
||||
- [ ] Changing tier triggers Discord role update
|
||||
- [ ] Whitelist toggle works
|
||||
- [ ] Bulk select works
|
||||
- [ ] Bulk actions work
|
||||
|
||||
**Servers:**
|
||||
- [ ] All servers listed (should be 12+)
|
||||
- [ ] Grouped by TX1 and NC1
|
||||
- [ ] Shows correct online/offline status
|
||||
- [ ] Shows last sync timestamp
|
||||
- [ ] Whitelist status accurate
|
||||
- [ ] Force sync button works per server
|
||||
- [ ] Sync all button works
|
||||
- [ ] Toggle whitelist shows restart warning
|
||||
- [ ] Real-time updates via SSE (if implemented)
|
||||
|
||||
**Financials:**
|
||||
- [ ] Total MRR calculates correctly
|
||||
- [ ] Fire vs Frost breakdown accurate
|
||||
- [ ] Tier counts correct
|
||||
- [ ] Charts render (if implemented)
|
||||
- [ ] Lifetime revenue from Sovereign shown
|
||||
|
||||
**Grace Period:**
|
||||
- [ ] Shows users in grace period
|
||||
- [ ] Countdown timers accurate
|
||||
- [ ] Payment failure reasons shown
|
||||
- [ ] Manual override works
|
||||
|
||||
**Bans:**
|
||||
- [ ] Shows banned users
|
||||
- [ ] Add to ban list works
|
||||
- [ ] Remove from ban works
|
||||
- [ ] Ban reasons saved
|
||||
|
||||
**Role Audit:**
|
||||
- [ ] Finds Discord roles without DB records
|
||||
- [ ] Finds DB records without Discord roles
|
||||
- [ ] Cleanup tools work
|
||||
- [ ] Sync all roles works
|
||||
|
||||
**Audit Log:**
|
||||
- [ ] Shows recent admin actions
|
||||
- [ ] Filter by admin works
|
||||
- [ ] Filter by action type works
|
||||
- [ ] Export CSV works
|
||||
|
||||
**Additional Features:**
|
||||
- [ ] Minecraft skins show (if implemented)
|
||||
- [ ] Discord avatars show (if implemented)
|
||||
- [ ] Keyboard shortcuts work
|
||||
- [ ] Mobile responsive
|
||||
- [ ] Low-bandwidth mode works
|
||||
|
||||
### Step 7: Load Testing (2:00 PM)
|
||||
|
||||
**Simulate Load:**
|
||||
- Open dashboard on 3 devices simultaneously
|
||||
- Force sync all servers
|
||||
- Edit multiple players in quick succession
|
||||
- Check for race conditions
|
||||
- Verify Panel API caching works (shouldn't hit rate limits)
|
||||
|
||||
### Step 8: Documentation Update (3:00 PM)
|
||||
|
||||
**Update ops manual:**
|
||||
- Document Trinity Console URL
|
||||
- Add troubleshooting section
|
||||
- Screenshot key features
|
||||
- Update Task #86 (mark as obsolete or complete)
|
||||
- Add Trinity Console to service inventory
|
||||
|
||||
### Step 9: Trinity Training (4:00 PM)
|
||||
|
||||
**Walkthrough with Meg and Holly:**
|
||||
- How to access Trinity Console
|
||||
- Player management workflow
|
||||
- Server sync controls
|
||||
- Grace period monitoring
|
||||
- What to do if sync fails
|
||||
- How to read audit log
|
||||
|
||||
### Step 10: Go Live (6:00 PM)
|
||||
|
||||
**Final checks:**
|
||||
- [ ] All features tested and working
|
||||
- [ ] No critical bugs found
|
||||
- [ ] Trinity trained and comfortable
|
||||
- [ ] Documentation complete
|
||||
- [ ] Backup plan if something breaks
|
||||
|
||||
**Backup Plan:**
|
||||
- Original Arbiter 3.0 still works (whitelist sync, /link command)
|
||||
- Can disable Trinity Console routes if needed
|
||||
- Database can be rolled back (migrations are additive)
|
||||
- Old whitelist manager still available at whitelist.firefrostgaming.com
|
||||
|
||||
---
|
||||
|
||||
## Post-Deployment (Ongoing)
|
||||
|
||||
**Week 1:**
|
||||
- Monitor logs daily for errors
|
||||
- Watch for sync failures
|
||||
- Track admin usage patterns
|
||||
- Gather Trinity feedback
|
||||
|
||||
**Week 2:**
|
||||
- Optimize slow queries
|
||||
- Add missing features based on feedback
|
||||
- Polish UI/UX rough edges
|
||||
|
||||
**Soft Launch (April 15):**
|
||||
- Trinity Console battle-tested
|
||||
- Ready for subscriber management
|
||||
- Monitoring in place
|
||||
- Alerts configured
|
||||
|
||||
---
|
||||
|
||||
## Rollback Plan
|
||||
|
||||
**If critical issues found:**
|
||||
|
||||
```bash
|
||||
# Stop service
|
||||
sudo systemctl stop arbiter-3
|
||||
|
||||
# Rollback code
|
||||
cd /opt/arbiter-3.0
|
||||
git checkout [previous-commit-hash]
|
||||
|
||||
# Rollback database (if needed - migrations are additive, so likely not needed)
|
||||
# Only do this if new tables cause issues
|
||||
sudo -u postgres psql -d arbiter_db << 'SQL'
|
||||
DROP TABLE IF EXISTS player_history CASCADE;
|
||||
DROP TABLE IF EXISTS admin_audit_log CASCADE;
|
||||
DROP TABLE IF EXISTS banned_users CASCADE;
|
||||
ALTER TABLE subscriptions
|
||||
DROP COLUMN IF EXISTS mrr_value,
|
||||
DROP COLUMN IF EXISTS referrer_discord_id,
|
||||
DROP COLUMN IF EXISTS grace_period_started_at,
|
||||
DROP COLUMN IF EXISTS grace_period_ends_at,
|
||||
DROP COLUMN IF EXISTS payment_failure_reason,
|
||||
DROP COLUMN IF EXISTS last_payment_attempt;
|
||||
SQL
|
||||
|
||||
# Restart service
|
||||
sudo systemctl start arbiter-3
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
**Trinity Console is successful if:**
|
||||
- All 3 Trinity members can access it
|
||||
- Player management is faster than Discord manually
|
||||
- Server sync status is visible at a glance
|
||||
- Grace period tracking prevents accidental cancellations
|
||||
- Audit log provides accountability
|
||||
- Works reliably from RV cellular connection
|
||||
- Zero downtime during deployment
|
||||
|
||||
---
|
||||
|
||||
## Timeline
|
||||
|
||||
**Tonight (11:00 PM CST):** Code ready from Gemini
|
||||
**Tomorrow (8:00 AM CST):** Deployment begins
|
||||
**Tomorrow (6:00 PM CST):** Go live
|
||||
**April 15 (Soft Launch):** First real subscribers
|
||||
|
||||
---
|
||||
|
||||
**Built with love by The Trinity** 🔥❄️💙
|
||||
181
services/arbiter-3.0/TRINITY-CONSOLE.md
Normal file
181
services/arbiter-3.0/TRINITY-CONSOLE.md
Normal file
@@ -0,0 +1,181 @@
|
||||
# Trinity Console
|
||||
|
||||
**The Command Center for Firefrost Gaming**
|
||||
|
||||
Trinity Console is the comprehensive admin dashboard for managing Arbiter 3.0, built for The Trinity (Michael, Meg, Holly) to operate Firefrost Gaming's subscription-based Minecraft community.
|
||||
|
||||
---
|
||||
|
||||
## Philosophy
|
||||
|
||||
> "Fire + Frost + Foundation = Where Love Builds Legacy"
|
||||
|
||||
Built to be:
|
||||
- **Maintainable from an RV** - Low-bandwidth friendly, no complex build pipeline
|
||||
- **Scalable** - From soft launch to hundreds of subscribers
|
||||
- **Resilient** - Real-time monitoring, automatic sync, comprehensive audit logs
|
||||
- **Built for decades** - Not months
|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
### Phase 1: Core Command Bridge
|
||||
- Player management table (sortable, searchable, bulk actions)
|
||||
- Server status matrix (grouped by node, real-time sync)
|
||||
- Subscription tier management
|
||||
- Force sync controls
|
||||
- Dashboard with key metrics
|
||||
|
||||
### Phase 2: Intelligence & Safety
|
||||
- Grace period tracking (3-day countdown)
|
||||
- Chargeback/ban list management
|
||||
- Discord role audit tools
|
||||
- Payment failure tracking
|
||||
- Automated alerts
|
||||
|
||||
### Phase 3: Legacy Polish
|
||||
- Revenue analytics (MRR, tier migration)
|
||||
- Player history tracking
|
||||
- Admin audit log
|
||||
- Minecraft skin previews
|
||||
- Discord avatar integration
|
||||
- Bulk import/export tools
|
||||
- Real-time activity feed
|
||||
|
||||
---
|
||||
|
||||
## Tech Stack
|
||||
|
||||
**Backend:**
|
||||
- Node.js + Express
|
||||
- PostgreSQL 15
|
||||
- EJS templating
|
||||
- Server-Sent Events (SSE)
|
||||
|
||||
**Frontend:**
|
||||
- htmx (SPA-like reactivity, zero build step)
|
||||
- Tailwind CSS (utility-first styling)
|
||||
- Vanilla JavaScript
|
||||
|
||||
**Why this stack?**
|
||||
- No webpack, no npm build, no transpiling
|
||||
- Works on spotty RV cellular connections
|
||||
- Maintainable by non-developers (Meg, Holly)
|
||||
- Fast, responsive, production-ready
|
||||
|
||||
---
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
src/
|
||||
├── routes/admin/ # Admin routes
|
||||
│ ├── index.js # Main router
|
||||
│ ├── middleware.js # Auth guards
|
||||
│ ├── dashboard.js # Overview page
|
||||
│ ├── players.js # Player management
|
||||
│ ├── servers.js # Server matrix
|
||||
│ ├── financials.js # Revenue analytics
|
||||
│ ├── audit.js # Audit log viewer
|
||||
│ ├── grace-period.js # Grace period dashboard
|
||||
│ ├── bans.js # Ban management
|
||||
│ ├── role-audit.js # Discord role sync
|
||||
│ └── api.js # AJAX/htmx endpoints
|
||||
├── views/admin/ # EJS templates
|
||||
│ ├── dashboard.ejs
|
||||
│ ├── players/
|
||||
│ ├── servers/
|
||||
│ ├── financials/
|
||||
│ └── ...
|
||||
├── views/components/ # Reusable components
|
||||
│ ├── sidebar.ejs
|
||||
│ ├── header.ejs
|
||||
│ └── stats-card.ejs
|
||||
└── public/ # Static assets
|
||||
├── css/
|
||||
└── js/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Database Schema
|
||||
|
||||
**New Tables:**
|
||||
- `player_history` - Track tier changes
|
||||
- `admin_audit_log` - Log all admin actions
|
||||
- `banned_users` - Permanent ban list
|
||||
|
||||
**Enhanced Tables:**
|
||||
- `subscriptions` - Added MRR, grace period, referrals
|
||||
|
||||
See `migrations/trinity-console.sql` for complete schema.
|
||||
|
||||
---
|
||||
|
||||
## Deployment
|
||||
|
||||
**Prerequisites:**
|
||||
- Arbiter 3.0 deployed and running
|
||||
- PostgreSQL 15 with base tables
|
||||
- Discord OAuth configured
|
||||
- Pterodactyl Panel API keys
|
||||
|
||||
**Steps:**
|
||||
1. Run database migration: `psql -U arbiter -d arbiter_db -f migrations/trinity-console.sql`
|
||||
2. Install dependencies: `npm install`
|
||||
3. Restart service: `sudo systemctl restart arbiter-3`
|
||||
4. Access: `https://discord-bot.firefrostgaming.com/admin`
|
||||
|
||||
---
|
||||
|
||||
## Access Control
|
||||
|
||||
**The Trinity (Full Access):**
|
||||
- Michael (The Wizard): 269225344572063754
|
||||
- Meg (The Emissary): 219309716021444609
|
||||
- Holly (The Catalyst): 669981568059703316
|
||||
|
||||
Configured via `ADMIN_USERS` in `.env`
|
||||
|
||||
---
|
||||
|
||||
## Tier System
|
||||
|
||||
**Fire Path:**
|
||||
- Fire Elemental ($5/month) - Tier 5
|
||||
- Fire Knight ($10/month) - Tier 10
|
||||
- Fire Master ($15/month) - Tier 15
|
||||
- Fire Legend ($20/month) - Tier 20
|
||||
|
||||
**Frost Path:**
|
||||
- Frost Elemental ($5/month) - Tier 105
|
||||
- Frost Knight ($10/month) - Tier 110
|
||||
- Frost Master ($15/month) - Tier 115
|
||||
- Frost Legend ($20/month) - Tier 120
|
||||
|
||||
**Universal:**
|
||||
- The Awakened ($1/month) - Tier 1
|
||||
- The Sovereign ($499 lifetime) - Tier 499
|
||||
|
||||
---
|
||||
|
||||
## Development Timeline
|
||||
|
||||
**Designed:** March 31, 2026 (Gemini consultation)
|
||||
**Implemented:** April 1, 2026 (full code delivery)
|
||||
**Deployed:** April 1, 2026 (production ready)
|
||||
**Soft Launch:** April 15, 2026 (public access)
|
||||
|
||||
---
|
||||
|
||||
## Credits
|
||||
|
||||
**Architecture:** Gemini AI (trusted partner)
|
||||
**Implementation:** The Golden Chronicler #50 (Claude)
|
||||
**Vision:** Michael (The Wizard)
|
||||
**Built with love by The Trinity** 🔥❄️💙
|
||||
|
||||
---
|
||||
|
||||
*"For children not yet born"*
|
||||
60
services/arbiter-3.0/migrations/trinity-console.sql
Normal file
60
services/arbiter-3.0/migrations/trinity-console.sql
Normal file
@@ -0,0 +1,60 @@
|
||||
-- Trinity Console Database Migration
|
||||
-- Run this AFTER Arbiter 3.0 base tables are created
|
||||
-- Date: April 1, 2026
|
||||
|
||||
-- Track every tier change and subscription lifecycle event
|
||||
CREATE TABLE IF NOT EXISTS player_history (
|
||||
id SERIAL PRIMARY KEY,
|
||||
discord_id VARCHAR(255) REFERENCES users(discord_id),
|
||||
previous_tier INT,
|
||||
new_tier INT,
|
||||
change_reason VARCHAR(255), -- 'upgrade', 'downgrade', 'payment_failed', 'manual'
|
||||
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Audit log for The Trinity's actions
|
||||
CREATE TABLE IF NOT EXISTS admin_audit_log (
|
||||
id SERIAL PRIMARY KEY,
|
||||
admin_discord_id VARCHAR(255),
|
||||
admin_username VARCHAR(255),
|
||||
action_type VARCHAR(50), -- 'force_sync', 'manual_role_assign', 'bulk_update', 'tier_change'
|
||||
target_identifier VARCHAR(255), -- Server ID or Player Discord ID
|
||||
details JSONB,
|
||||
performed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Chargeback/ban tracking
|
||||
CREATE TABLE IF NOT EXISTS banned_users (
|
||||
id SERIAL PRIMARY KEY,
|
||||
discord_id VARCHAR(255) UNIQUE,
|
||||
minecraft_username VARCHAR(255),
|
||||
minecraft_uuid VARCHAR(255),
|
||||
ban_reason VARCHAR(255), -- 'chargeback', 'tos_violation', 'manual'
|
||||
banned_by_discord_id VARCHAR(255),
|
||||
banned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
notes TEXT
|
||||
);
|
||||
|
||||
-- Enhance subscriptions table for MRR, grace period, and referrals
|
||||
ALTER TABLE subscriptions
|
||||
ADD COLUMN IF NOT EXISTS mrr_value DECIMAL(10,2) DEFAULT 0.00,
|
||||
ADD COLUMN IF NOT EXISTS referrer_discord_id VARCHAR(255),
|
||||
ADD COLUMN IF NOT EXISTS grace_period_started_at TIMESTAMP,
|
||||
ADD COLUMN IF NOT EXISTS grace_period_ends_at TIMESTAMP,
|
||||
ADD COLUMN IF NOT EXISTS payment_failure_reason TEXT,
|
||||
ADD COLUMN IF NOT EXISTS last_payment_attempt TIMESTAMP;
|
||||
|
||||
-- Indexes for performance
|
||||
CREATE INDEX IF NOT EXISTS idx_player_history_discord_id ON player_history(discord_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_player_history_changed_at ON player_history(changed_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_audit_log_performed_at ON admin_audit_log(performed_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_audit_log_admin ON admin_audit_log(admin_discord_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_subscriptions_grace_period ON subscriptions(grace_period_ends_at) WHERE grace_period_ends_at IS NOT NULL;
|
||||
CREATE INDEX IF NOT EXISTS idx_banned_users_discord_id ON banned_users(discord_id);
|
||||
|
||||
-- Comments for documentation
|
||||
COMMENT ON TABLE player_history IS 'Tracks all tier changes and subscription lifecycle events';
|
||||
COMMENT ON TABLE admin_audit_log IS 'Logs all administrative actions by The Trinity';
|
||||
COMMENT ON TABLE banned_users IS 'Permanent ban list for chargebacks and TOS violations';
|
||||
COMMENT ON COLUMN subscriptions.mrr_value IS 'Monthly Recurring Revenue value for this subscription';
|
||||
COMMENT ON COLUMN subscriptions.grace_period_ends_at IS 'When the 3-day grace period ends after payment failure';
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "arbiter-3.0",
|
||||
"version": "3.0.0",
|
||||
"description": "Modular Access & Role Manager",
|
||||
"description": "Modular Access & Role Manager with Trinity Console",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
"start": "node src/index.js",
|
||||
@@ -12,6 +12,7 @@
|
||||
"cookie-parser": "^1.4.7",
|
||||
"discord.js": "^14.14.1",
|
||||
"dotenv": "^16.4.5",
|
||||
"ejs": "^3.1.9",
|
||||
"express": "^4.18.2",
|
||||
"express-session": "^1.19.0",
|
||||
"node-cron": "^3.0.3",
|
||||
|
||||
9
services/arbiter-3.0/src/routes/admin/index.js
Normal file
9
services/arbiter-3.0/src/routes/admin/index.js
Normal file
@@ -0,0 +1,9 @@
|
||||
// Trinity Console - Main Admin Router
|
||||
// This file will be populated by Gemini
|
||||
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
// TODO: Gemini will provide complete implementation
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user