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

// Angenommen, du hast eine Datei `databaseModels.js` mit deinen pgTable-Definitionen
const { users } = require('./schema');

function generateTypeScriptInterface(tableDefinition, tableName) {
  let interfaceString = `export interface ${tableName} {\n`;
  for (const [column, definition] of Object.entries(tableDefinition)) {
    // Du musst die Definition parsen, um den korrekten Typ zu extrahieren
    const tsType = definition.type === 'uuid' ? 'string' :
                   definition.type.startsWith('varchar') || definition.type === 'text' ? 'string' :
                   definition.type === 'boolean' ? 'boolean' : 'any';
    interfaceString += `  ${column}${definition.optional ? '?' : ''}: ${tsType};\n`;
  }
  interfaceString += '}\n';
  return interfaceString;
}

const userModelInterface = generateTypeScriptInterface(users.columns, 'User');
fs.writeFileSync(path.join(__dirname, 'UserInterface.ts'), userModelInterface);