feat: complete pre-launch audit — frontend polish, churn prevention, login history, financial reports, configurable checkout

Includes all work from phases 6-9+ and frontend polish rounds 1 & 2:

- Login history with device trust, new device notifications, session management
- Churn prevention: cancellation surveys, winback campaigns with email sequences
- Financial reports: revenue, P&L, tax, aging, refund, subscription reports with PDF/CSV/JSON export
- Configurable checkout: plan config groups/options, build-your-own VPS
- Frontend polish: fix broken legal links, add SEO meta tags, favicon, font display=swap,
  Head titles on all 14 marketing pages, mobile responsive fixes, AuthLayout legal footer,
  remove false 24/7 claims, hide empty stats, correct uptime SLA to 99.9%,
  GameServers notify buttons linked to /contact, 301 redirects for /terms and /privacy
- WHMCS migration scripts
- Update legal page effective dates to March 16, 2026

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Dev
2026-03-16 11:39:25 -04:00
parent 5be235d35e
commit b4ef90465c
187 changed files with 27317 additions and 1840 deletions

View File

@@ -0,0 +1,46 @@
{
"_comment": "WHMCS product ID → EZSCALE plan slug. Products not listed here will be SKIPPED (not auto-created).",
"mappings": {
"194": "vps-1",
"195": "vps-2",
"230": "vps-4",
"196": "vps-4",
"231": "stor-500",
"197": "vps-8",
"232": "vps-16",
"198": "vps-16",
"199": "vps-32",
"161": "vps-3-custom",
"201": "dell-r330-lff",
"117": "dell-r420-lff",
"110": "dell-r620-sff-10-bay",
"143": "dell-r620-sff-8-bay",
"125": "dell-r520-lff",
"104": "dell-r430-lff",
"209": "dell-r630-sff",
"109": "dell-r730-lff",
"203": "stor-36bay",
"70": "hosting-small",
"96": "hosting-medium",
"97": "hosting-large",
"106": "hosting-dedicated",
"12": "mysql-bronze",
"13": "mysql-silver",
"14": "mysql-gold",
"15": "mysql-platinum",
"1": "procon-layer",
"170": "veeam-enterprise-plus",
"171": "veeam-standard",
"172": "veeam-cloud-connect"
},
"skip": [
"3",
"37",
"62",
"147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157",
"173", "174", "175", "176", "177", "178", "179",
"180", "159", "111",
"213",
"224", "225", "226", "227", "228", "229"
]
}