import { readFileSync } from 'node:fs';
import { resolve } from 'node:path';

const root = resolve(import.meta.dirname, '..');
const read = path => readFileSync(resolve(root, path), 'utf8');
const assert = (condition, message) => { if (!condition) throw new Error(message); };

const index = read('public/index.html');
const app = read('public/app.js');
const style = read('public/style.css');
const editor = read('lib/image-editor.mjs');
const setup = read('setup.ps1');

assert(index.includes('name="vendoo-build" content="1.23.2"'), 'Build-Metadatum fehlt.');
assert(index.includes('style.css?v=1.23.2'), 'CSS-Cache-Buster fehlt.');
assert(index.includes('app.js?v=1.23.2'), 'JS-Cache-Buster fehlt.');
assert(app.includes("VENDOO_UI_BUILD = '1.23.2'"), 'UI-Buildkennung fehlt.');
assert(setup.includes('/?build=1.23.2'), 'Windows-Start-Cache-Buster fehlt.');

const promptIndex = index.indexOf('<h3>Prompt &amp; Auftrag</h3>');
const runtimeIndex = index.indexOf('<h3>System &amp; ComfyUI</h3>');
const previewIndex = index.indexOf('<h3>Auswahl &amp; Varianten</h3>');
assert(promptIndex >= 0 && runtimeIndex > promptIndex && previewIndex > runtimeIndex, 'FLUX-Kartenreihenfolge ist nicht Prompt → System → Vorschau.');
assert(index.includes('class="flux-studio-left-stack"'), 'Linker FLUX-Stack fehlt.');
assert(index.includes('id="flux-job-center-toggle"'), 'Job-Center-Gesamttoggle fehlt.');
assert(index.includes('id="flux-job-collapse-all"'), 'Alle-einklappen-Schalter fehlt.');
assert(app.includes('data-flux-job-toggle'), 'Einzelne Job-Toggles fehlen.');
assert(style.includes('.flux-job-card.is-collapsed .flux-job-card-body'), 'Job-Collapse-Styling fehlt.');

assert(index.includes('id="pe-remove-background"'), 'Hintergrundentfernung fehlt im Editor.');
assert(index.includes('id="pe-watermark-enabled"'), 'Wasserzeichen fehlt im Editor.');
assert(index.includes('id="pe-watermark-text"'), 'Wasserzeichentext fehlt.');
assert(!index.includes('id="remove-bg-btn"'), 'Alter Hintergrund-Button ist noch vorhanden.');
assert(!index.includes('id="watermark-btn"'), 'Alter Wasserzeichen-Button ist noch vorhanden.');
assert(!app.includes("getElementById('remove-bg-btn')"), 'Alter Hintergrund-Handler ist noch vorhanden.');
assert(!app.includes("getElementById('watermark-btn')"), 'Alter Wasserzeichen-Handler ist noch vorhanden.');
assert(editor.includes('removeUniformBackground'), 'Serverseitige Hintergrundentfernung fehlt.');
assert(editor.includes('createWatermarkSvg'), 'Serverseitiges Wasserzeichen fehlt.');
assert(app.includes('applyPreviewBackgroundRemoval'), 'Hintergrundvorschau fehlt.');
assert(app.includes('applyPreviewWatermark'), 'Wasserzeichenvorschau fehlt.');

const extensionFiles = [
  'extension/content.js',
  'extensions/content.js',
  'extensions/chrome/content.js',
  'extensions/edge/content.js',
  'extensions/firefox/content.js',
];
for (const file of extensionFiles) {
  const content = read(file);
  assert(content.includes('function isLikelyTitleField(el)'), `${file}: Titelfeldschutz fehlt.`);
  assert(content.includes('if (!trigger || isLikelyTitleField(trigger)) return false;'), `${file}: Choice-Felder schützen Titel nicht.`);
}

console.log('Vendoo 1.23.2 Hotfix-Verifikation erfolgreich.');
