feat: add VIP gating on cloud sync write endpoints + daily expiry reminder cron

- Add requireVip middleware to POST/PUT/DELETE /api/user-equity routes
- Extract sendExpiryReminders() from route handler for reuse
- Add node-cron job at 21:30 Asia/Shanghai daily for expiry reminders

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Developer
2026-05-15 22:22:08 +08:00
parent 21f9824a24
commit f9a4d50b09
5 changed files with 854 additions and 84 deletions
+16 -13
View File
@@ -20,23 +20,26 @@
"author": "",
"license": "MIT",
"dependencies": {
"express": "^4.18.2",
"cors": "^2.8.5",
"helmet": "^7.1.0",
"morgan": "^1.10.0",
"dotenv": "^16.3.1",
"mongoose": "^8.0.3",
"jsonwebtoken": "^9.0.2",
"bcryptjs": "^2.4.3",
"express-validator": "^7.0.1",
"axios": "^1.6.2",
"crypto-js": "^4.2.0"
"bcryptjs": "^2.4.3",
"cors": "^2.8.5",
"crypto-js": "^4.2.0",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"express-validator": "^7.0.1",
"helmet": "^7.1.0",
"jsonwebtoken": "^9.0.2",
"mongoose": "^8.0.3",
"morgan": "^1.10.0",
"multer": "^1.4.4",
"node-cron": "^4.2.1",
"sharp": "^0.33.2"
},
"devDependencies": {
"nodemon": "^3.0.2",
"jest": "^29.7.0",
"@types/node": "^20.10.6",
"eslint": "^8.56.0",
"@types/node": "^20.10.6"
"jest": "^29.7.0",
"nodemon": "^3.0.2"
},
"engines": {
"node": ">=18.0.0"