const fs = require('fs');
const path = require('path');

const dir = '/opt/company-finance-system/backend/routes';
const files = fs.readdirSync(dir).filter(f => f.endsWith('.js'));

for (const file of files) {
  const filePath = path.join(dir, file);
  let content = fs.readFileSync(filePath, 'utf8');
  const original = content;
  
  // Add RETURNING id to INSERT statements that don't already have it
  // Match: INSERT INTO ... VALUES (...); followed by parameter array
  // We look for the pattern where VALUES ends with a closing paren and is followed by the array literal
  
  const lines = content.split('\n');
  let modified = false;
  
  for (let i = 0; i < lines.length; i++) {
    const line = lines[i];
    // Check if this line contains VALUES (...) ending and the next line starts the array
    if (line.match(/VALUES\s*\(.*\)/) && !line.includes('RETURNING')) {
      // Check if this INSERT is into a main table (has a corresponding db.query call)
      // We need to add RETURNING id before the closing backtick
      if (line.includes('CURRENT_TIMESTAMP)') || line.match(/\)\s*`?\s*$/)) {
        // Replace the trailing )` or ), with RETURNING id
        lines[i] = line.replace(/CURRENT_TIMESTAMP\)\s*`?\s*$/, "CURRENT_TIMESTAMP)\n       RETURNING id`");
        if (lines[i] !== line) modified = true;
      }
    }
  }
  
  if (modified) {
    fs.writeFileSync(filePath, lines.join('\n'));
    console.log('Fixed: ' + file);
  } else {
    console.log('No change: ' + file);
  }
}
