const fs = require('fs'); const path = require('path'); const PAYMENT_STORAGE_ROOT = process.env.PORTAL_PAYMENT_STORAGE_ROOT || '/data/wifiplatform/storage/payment'; const PUBLIC_PAYMENT_ASSET_PREFIX = '/portal/assets/payment'; function ensureDir(dirPath) { fs.mkdirSync(dirPath, { recursive: true }); return dirPath; } function ensurePaymentStorageRoot() { return ensureDir(PAYMENT_STORAGE_ROOT); } function getDevicePaymentDir(deviceId) { return path.join(PAYMENT_STORAGE_ROOT, String(deviceId)); } function ensureDevicePaymentDir(deviceId) { return ensureDir(getDevicePaymentDir(deviceId)); } function makePaymentAssetUrl(deviceId, fileName) { return `${PUBLIC_PAYMENT_ASSET_PREFIX}/${encodeURIComponent(String(deviceId))}/${encodeURIComponent(fileName)}`; } function resolvePaymentAssetPath(deviceId, fileName) { const safeName = path.basename(String(fileName || '')); return path.join(getDevicePaymentDir(deviceId), safeName); } module.exports = { PAYMENT_STORAGE_ROOT, ensurePaymentStorageRoot, ensureDevicePaymentDir, getDevicePaymentDir, makePaymentAssetUrl, resolvePaymentAssetPath, };