const fs = require('fs'); const path = require('path'); const { parseTemplateSchema } = require('./templateSchema'); const BACKEND_ROOT = path.join(__dirname, '..', '..'); function isLocalMicrositeV2TemplatesEnabled() { const v = String(process.env.MICROSITE_V2_READ_FROM_LOCAL || '').trim().toLowerCase(); return v === '1' || v === 'true' || v === 'yes'; } function getTemplatesRoot() { const custom = String(process.env.MICROSITE_V2_TEMPLATES_DIR || '').trim(); if (custom) return path.resolve(custom); return path.join(BACKEND_ROOT, 'microsite-v2-templates'); } function resolveTemplateDir(slug) { const normalized = String(slug || '').trim().toLowerCase(); if (!normalized) return null; const dir = path.join(getTemplatesRoot(), normalized); if (!fs.existsSync(dir)) return null; return dir; } function readLocalTemplateSchema(slug) { const dir = resolveTemplateDir(slug); if (!dir) return null; const jsonPath = path.join(dir, 'template.json'); if (!fs.existsSync(jsonPath)) return null; return parseTemplateSchema(fs.readFileSync(jsonPath)); } function readLocalTemplateHtml(slug) { const dir = resolveTemplateDir(slug); if (!dir) return null; const htmlPath = path.join(dir, 'template.html'); if (!fs.existsSync(htmlPath)) return null; return fs.readFileSync(htmlPath, 'utf8'); } module.exports = { isLocalMicrositeV2TemplatesEnabled, getTemplatesRoot, readLocalTemplateSchema, readLocalTemplateHtml, };