Commit Graph

4 Commits

Author SHA1 Message Date
Claude (Chronicler #52)
aeeaa14865 feat: Add Admin tier to dropdown and staff tracking
WHAT WAS DONE:
- Added Admin tier (1000) back to tier dropdown
- Added is_staff toggle checkbox in Actions column
- Created POST route /admin/players/:discord_id/staff
- Updated query to include is_staff from users table
- Both tier and staff status tracked separately

WHY:
- Trinity needs ability to assign Admin tier to team members
- Staff can also be subscribers - need to track both
- Example: Moderator who also pays for Elemental tier
- Separate tracking prevents conflating employment and subscription

HOW IT WORKS:
- Tier dropdown shows ALL tiers including Admin
- Staff checkbox toggles is_staff on users table
- Both changes create separate audit log entries
- Staff flag independent of subscription tier

DATABASE REQUIREMENT:
- Requires migration: ALTER TABLE users ADD COLUMN is_staff BOOLEAN DEFAULT FALSE;
- Must be run before deploying this code

FEATURES:
- Admin tier assignable via dropdown
- Staff toggle with visual checkbox
- Both tracked in audit log separately
- Tier + Staff shown side-by-side in Actions column

IMPACT:
- Can now hire staff and track their employment
- Staff can also be subscribers without conflict
- Clear separation of concerns
- Ready for team expansion

FILES MODIFIED:
- services/arbiter-3.0/src/views/admin/players/_table_body.ejs
- services/arbiter-3.0/src/routes/admin/players.js

DEPLOYMENT STEPS:
1. Run database migration (ADD is_staff column)
2. Deploy code files
3. Restart arbiter-3 service

Signed-off-by: Claude (Chronicler #52) <claude@firefrostgaming.com>
2026-04-01 15:33:06 +00:00
Claude (Chronicler #52)
085e60e748 feat: Add tier change functionality to Players module
WHAT WAS DONE:
- Added tier change dropdown in Players Actions column
- Created POST route /admin/players/:discord_id/tier
- Implemented database tier update with MRR recalculation
- Added audit log entry for tier changes
- htmx reload of table after tier change

WHY:
- Trinity needs ability to manually adjust subscriber tiers
- Customer service: upgrades, downgrades, support cases
- Accountability via audit logging
- Last missing feature in Players module

HOW IT WORKS:
- Dropdown shows all tiers (except Admin 1000)
- On change, htmx POSTs to tier change endpoint
- Route updates subscriptions table (tier_level + mrr_value)
- Audit log records who made the change
- After success, table reloads to show updated tier

FEATURES:
- Real-time tier changes without page refresh
- Automatic MRR recalculation
- Audit trail for compliance
- Skips Admin tier (reserved for Trinity)
- Shows current tier as selected in dropdown

IMPACT:
- Trinity can now manage all subscriber tiers manually
- Critical for customer support scenarios
- Completes Players module functionality
- Ready for soft launch customer service

TODO:
- Discord role sync integration (marked in code)
- This requires bot API endpoint to be built

FILES MODIFIED:
- services/arbiter-3.0/src/views/admin/players/_table_body.ejs
- services/arbiter-3.0/src/routes/admin/players.js

TESTED:
- Not yet deployed - needs testing on Command Center

Signed-off-by: Claude (Chronicler #52) <claude@firefrostgaming.com>
2026-04-01 15:28:31 +00:00
Claude (Chronicler #51)
a3e85463e2 deploy: Trinity Console Production Launch - April 1, 2026
TRINITY CONSOLE IS LIVE at https://discord-bot.firefrostgaming.com/admin

Deployment Status: 95% Complete - LAUNCHED
Deployed by: Chronicler #51
Server: Command Center (63.143.34.217)

WHAT WAS DEPLOYED:
==================
 All 7 modules functional (Dashboard, Servers, Players, Financials*,
   Grace Period, Audit Log, Role Audit)
 Database migration applied (3 tables, 6 columns, 7 indexes)
 CSRF security protection
 Trinity-only access control verified
 Fire/Frost branding throughout
 Dark mode working

*Financials is placeholder - full implementation in Phase 2

CRITICAL FIXES APPLIED:
=======================
1. layout.ejs - Fixed DOMContentLoaded wrapper for CSRF htmx config
   - Prevented 'addEventListener on null' error
   - CSRF token now loads after body element exists

2. constants.js - Added Admin tier (1000) for Trinity members
   - Michael, Meg, Holly now show as 'Admin' not 'Sovereign'
   - Lifetime tier with $0 MRR

3. players/_table_body.ejs - Fixed Minecraft skin rendering
   - Changed from Crafatar to mc-heads.net (more reliable)
   - Added fallback to Steve skin on error
   - Fixed skin not displaying issue

4. financials/index.ejs - Created placeholder to unblock launch
   - Original template had nested EJS causing parse errors
   - Temporary placeholder deployed
   - Full implementation queued for Phase 2 (45-60 min)

PHASE 2 WORK (Later Today):
============================
Priority 1: Full Financials implementation (45-60 min)
  - Real MRR calculations from database
  - Fire vs Frost path breakdown
  - Tier-by-tier revenue analytics
  - At-risk MRR tracking
  - Lifetime revenue from Sovereign

Priority 2: Players Edit functionality (30 min)
  - Tier change dropdown
  - Discord role sync
  - Audit log integration

AUTHORIZED USERS:
=================
- Holly (unicorn20089): 269225344572063754
- Michael (Frostystyle): 219309716021444609
- Meg (Gingerfury66): 669981568059703316

TESTING STATUS:
===============
 All modules load without errors
 Navigation functional
 Access control verified
 Service running stable
 Trinity user testing pending
 Mobile/cellular testing pending

DOCUMENTATION:
==============
Complete deployment guide: TRINITY-CONSOLE-DEPLOYMENT-2026-04-01.md
Includes: deployment steps, rollback plan, testing checklist,
technical notes, Phase 2 roadmap

FILES CHANGED:
==============
- services/arbiter-3.0/src/views/layout.ejs
- services/arbiter-3.0/src/views/admin/players/_table_body.ejs
- services/arbiter-3.0/src/views/admin/financials/index.ejs
- services/arbiter-3.0/src/routes/admin/constants.js
- TRINITY-CONSOLE-DEPLOYMENT-2026-04-01.md (new)

PRODUCTION DEPLOYMENT COMPLETE 

Fire + Frost + Foundation = Where Love Builds Legacy 🔥❄️💙

Built by Zephyr (Chronicler #50), Deployed by Chronicler #51
For The Trinity: Michael, Meg, Holly

Signed-off-by: Claude (Chronicler #51) <claude@firefrostgaming.com>
2026-04-01 05:15:12 -05:00
Claude (The Golden Chronicler #50)
c1ce09bc55 feat: Trinity Console Phase 1 - Foundation from Gemini
GEMINI DELIVERED THE FOUNDATION! 🎉

Complete htmx + EJS + Tailwind architecture for Trinity Console with
zero build pipeline - perfect for RV cellular connections.

ARCHITECTURE (from Gemini):
- htmx for SPA-like reactivity (no webpack, no build step)
- EJS for server-side templating
- Tailwind CSS via CDN (will bundle later)
- Real-time updates without page reloads
- Mobile-responsive design
- Dark mode toggle

CORE INFRASTRUCTURE:
- src/routes/admin/constants.js - Tier definitions with MRR values
- src/routes/admin/middleware.js - Trinity access control
- src/routes/admin/index.js - Main admin router with sub-routes
- src/routes/admin/players.js - Player management with htmx endpoints

PLAYER MANAGEMENT MODULE (Complete):
- Sortable, searchable player table
- Server-side pagination (20 per page)
- htmx instant search (500ms debounce)
- Minecraft skin avatars via crafatar.com
- Fire/Frost tier badges with gradient colors
- Status indicators (active/grace/offline)
- Load more pagination without page reload

MASTER LAYOUT:
- src/views/layout.ejs - Full Trinity Console shell
- Collapsible sidebar navigation
- Top header with dark mode toggle
- Notification bell (placeholder)
- User avatar in sidebar
- Fire/Frost/Universal gradient branding

VIEWS:
- src/views/admin/dashboard.ejs - Stats cards + welcome
- src/views/admin/players/index.ejs - Player table shell
- src/views/admin/players/_table_body.ejs - htmx partial for table rows

HTMX MAGIC:
- Instant search: hx-get with 500ms delay trigger
- Pagination: hx-target swaps table body only
- No JavaScript required for interactivity
- Perfect for low-bandwidth RV connections

STYLING:
- Fire gradient: #FF6B35
- Frost gradient: #4ECDC4
- Universal gradient: #A855F7
- Dark mode: #1a1a1a background, #2d2d2d cards
- Light mode: #f5f5f5 background, #ffffff cards

INTEGRATION POINTS:
- Uses existing database.js for PostgreSQL queries
- Joins users + subscriptions tables
- Filters by ILIKE for case-insensitive search
- Ready for admin audit logging

NEXT STEPS:
1. Get Server Matrix module from Gemini (requested)
2. Get Financials module from Gemini
3. Get Grace Period dashboard from Gemini
4. Deploy tomorrow morning

GEMINI'S WISDOM:
"To maintain that momentum and get you deploying today, I will provide
the Complete Database Migration, the Core Architectural Foundation, the
Master EJS Layout, and the most complex feature: The Player Management
Module."

DEPLOYMENT STATUS:
 Foundation code ready
 Database migration ready (already committed)
 Waiting for Server Matrix module
 Waiting for Financials module
 Waiting for Grace Period module

TESTING NOTES:
- Requires index.js update to mount /admin routes
- Requires EJS view engine configuration
- Requires static file serving for public/
- All will be added when Server Matrix arrives

PHILOSOPHY:
Fire + Frost + Foundation = Where Love Builds Legacy
Built for RV life, designed to last decades.

Signed-off-by: The Golden Chronicler <claude@firefrostgaming.com>
Co-authored-by: Gemini AI <gemini@anthropic-partnership.ai>
2026-04-01 04:35:21 +00:00