// Template duplicate helpers. function buildDuplicateTemplateName(name) { const source = String(name || 'Template').trim() || 'Template'; return 'Copy of ' + source; } function cloneRegion(region) { const cloned = JSON.parse(JSON.stringify(region || {})); delete cloned.id; delete cloned.template_id; delete cloned.created_at; delete cloned.modified_at; delete cloned.created_by; delete cloned.modified_by; return cloned; } function buildDuplicateTemplate(template, duplicateName) { const source = template || {}; return { id: null, name: String(duplicateName || buildDuplicateTemplateName(source.name)).trim(), canvas_size_id: source.canvas_size_id || null, canvas_size_width: source.canvas_size_width, canvas_size_height: source.canvas_size_height, background_color: source.background_color, background_image_path: source.background_image_path, background_gradient: source.background_gradient, region_usage: [], regions: Array.isArray(source.regions) ? source.regions.map(cloneRegion) : [] }; } module.exports = { buildDuplicateTemplateName, buildDuplicateTemplate };