/**
 * index.js — Giriş noktası (bootstrap)
 * Lisans + kurulum geçerliyse asıl uygulamayı, değilse kurulum sihirbazını başlatır.
 */

const fs = require('fs');
const path = require('path');
const { verifyLicense } = require('./lib/license');

const TABAN = process.pkg ? path.dirname(process.execPath) : __dirname;
const DATA_DIR = process.env.DAYI_DATA || path.join(TABAN, 'data');
const CONFIG_PATH = path.join(DATA_DIR, 'config.json');
const LICENSE_PATH = path.join(DATA_DIR, 'license.key');

function lisansGecerli() {
  try { return verifyLicense(fs.readFileSync(LICENSE_PATH, 'utf8').replace(/^﻿/, '').trim()).ok; }
  catch { return false; }
}
function kurulumTamam() {
  try { return !!JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf8').replace(/^﻿/, '')).kurulumTamam; }
  catch { return false; }
}

// Geliştirici modu: eski kurulumla (config'siz) çalışan mevcut makinede sihirbazı atla.
const ESKI_KURULUM = fs.existsSync(path.join(__dirname, '..', 'gmail_credentials.json'));

// Paketlenmiş exe'de: bilgisayar açılınca otomatik başlatma kaydı (idempotent, her açılışta tazelenir)
const isPaketli = !/[\\/]node(\.exe)?$/i.test(process.execPath);
function autostartKur() {
  if (!isPaketli || process.env.DAYI_NO_AUTOSTART) return;
  const exe = process.execPath;
  try {
    if (process.platform === 'win32') {
      require('child_process').execSync(
        'reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run" /v DAIMailAsistani /t REG_SZ /d "\\"' + exe + '\\" --autostart" /f',
        { windowsHide: true, stdio: 'ignore' });
    } else if (process.platform === 'darwin') {
      const os = require('os');
      const dir = path.join(os.homedir(), 'Library', 'LaunchAgents');
      fs.mkdirSync(dir, { recursive: true });
      const plist = '<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0"><dict><key>Label</key><string>com.tasarimcidayi.daimail</string><key>ProgramArguments</key><array><string>' + exe + '</string><string>--autostart</string></array><key>RunAtLoad</key><true/></dict></plist>';
      fs.writeFileSync(path.join(dir, 'com.tasarimcidayi.daimail.plist'), plist);
    }
  } catch {}
}
autostartKur();

if ((lisansGecerli() && kurulumTamam()) || (ESKI_KURULUM && !fs.existsSync(LICENSE_PATH) && !fs.existsSync(CONFIG_PATH))) {
  require('./server.js');
} else {
  require('./setup-server.js');
}
