import Redis from 'ioredis';
import { GeneralService } from '../share/generalservice.js';
// import { sendError } from './response.js';

export async function verifyEmailHandler(req, res) {
  const redis = new Redis();
  const generalService = new GeneralService();

  try {
    const { email, token } = req.query;
    const schema = req.body?.organization || 'nuttakit'; // 🧩 ใช้ schema ตาม org
    const storedData = await redis.get(`verify:${email}`);

    if (!storedData) {
      return res.status(400).send('ลิงก์หมดอายุหรือไม่ถูกต้อง');
    }

    const { fname, lname, hashedPwd, token: storedToken } = JSON.parse(storedData);
    if (token !== storedToken) {
      return res.status(400).send('Token ไม่ถูกต้อง');
    }

    let sql = `
      INSERT INTO ${schema}.usrmst (usrnam, usrthinam, usrthilstnam, usrpwd, usrrol)
      VALUES ($1, $2, $3, $4, 'U')
    `;
    let param = [email, fname, lname, hashedPwd];
    await generalService.executeQueryParam(sql, param);

    await redis.del(`verify:${email}`);

    res.send(`<h2>✅ ยืนยันอีเมลสำเร็จ บัญชีของคุณถูกสร้างแล้ว (${schema})</h2>`);
  } catch (error) {
    console.error('❌ [Verify Email Error]', error);
    res.status(500).send('เกิดข้อผิดพลาดในระบบ');
  }
}
