const fs = require('fs'); let code = fs.readFileSync('server/index.js', 'utf8'); const computeSectorCode = ` function computeSector(numero) { if (!numero) return 'En Área'; const parts = String(numero).trim().split('-'); if (parts.length === 0) return 'En Área'; const salaStr = parts[0].trim(); const salaNum = parseInt(salaStr, 10); if (isNaN(salaNum)) return 'En Área'; if (salaNum >= 300 && salaNum < 400 && salaNum % 2 !== 0) return 'Fuera de Área'; if (salaNum >= 400 && salaNum < 500) return 'Fuera de Área'; return 'En Área'; } `; // Insert computeSector somewhere at the top code = code.replace("const PORT = process.env.PORT || 3000;", computeSectorCode + "\nconst PORT = process.env.PORT || 3000;"); code = code.replace( /const stmt = db\.prepare\('INSERT OR IGNORE INTO camas \(id, numero, grupoId, areaId, tipo, estado\) VALUES \(\?, \?, \?, \?, \?, \?\)'\);\s*for \(const c of state\.camas\) \{\s*const gId = c\.grupoId \|\| c\.areaId \|\| null;\s*stmt\.run\(c\.id, c\.numero, gId, gId, c\.tipo, c\.estado\);\s*\}/, `const stmt = db.prepare('INSERT OR IGNORE INTO camas (id, numero, grupoId, areaId, tipo, estado, sector) VALUES (?, ?, ?, ?, ?, ?, ?)'); for (const c of state.camas) { const gId = c.grupoId || c.areaId || null; const sector = computeSector(c.numero); stmt.run(c.id, c.numero, gId, gId, c.tipo, c.estado, sector); }` ); code = code.replace( /const stmt = db\.prepare\('INSERT INTO camas \(id, numero, areaId, tipo, estado\) VALUES \(\?, \?, \?, \?, \?\)'\);\s*for \(const c of updates\.camas\) \{\s*stmt\.run\(c\.id, c\.numero, c\.areaId, c\.tipo, c\.estado\);\s*\}/, `const stmt = db.prepare('INSERT INTO camas (id, numero, grupoId, areaId, tipo, estado, sector) VALUES (?, ?, ?, ?, ?, ?, ?)'); for (const c of updates.camas) { const sector = computeSector(c.numero); stmt.run(c.id, c.numero, c.grupoId || c.areaId || null, c.grupoId || c.areaId || null, c.tipo, c.estado, sector); }` ); fs.writeFileSync('server/index.js', code);