const { getDatabase } = require('../config/database');

// Übergangslogik pro-Geräte-Keys (DSGVO/Security-Migration):
// - Alte Agents (vor v2.8.0) schicken noch den einen geteilten AGENT_API_KEY → wird vorübergehend
//   weiter akzeptiert, damit der Rollout nicht die ganze Fleet auf einmal bricht.
// - Migrierte Agents schicken ihren individuellen, beim Enrollment ausgestellten Key — dieser wird
//   NUR für den exakt zugehörigen Hostname akzeptiert, ein gestohlener Key kann also nicht mehr
//   benutzt werden, um sich als ein anderes Gerät auszugeben.
function validateAgentKey(presentedKey, hostname) {
    if (!presentedKey) return false;
    if (presentedKey === process.env.AGENT_API_KEY) return true;
    if (!hostname) return false;
    const db = getDatabase();
    const row = db.prepare('SELECT agent_key FROM monitoring_agents WHERE hostname = ?').get(hostname);
    return !!row?.agent_key && row.agent_key === presentedKey;
}

module.exports = { validateAgentKey };
