<?php

namespace App\Http\Controllers;

use App\Models\Transaction;
use App\Mail\SendCertificateMail;
use Illuminate\Support\Facades\Mail;

class AttendanceController extends Controller
{
    /**
     * Memicu Scan Validasi Kehadiran & Otomatis Kirim Sertifikat PDF
     */
    public function scan($order_id)
    {
        // Cari transaksi berdasarkan order id tiketnya
        $transaction = Transaction::with('event')->where('order_id', $order_id)->firstOrFail();

        // Cegah sertifikat dikirim dua kali kalau dia melakukan scan ulang
        if ($transaction->is_attended) {
            return response()->json([
                'success' => false,
                'message' => 'Peserta sudah melakukan absensi sebelumnya!'
            ], 400);
        }

        // 1. Update status kehadiran di database menjadi true
        $transaction->update(['is_attended' => true]);

        // 2. Detik itu juga, tembak kirim email berisi lampiran sertifikat PDF!
        try {
            Mail::to($transaction->customer_email)->send(new SendCertificateMail($transaction));
        } catch (\Exception $e) {
            \Log::error('Gagal kirim e-sertifikat: ' . $e->getMessage());
        }

        return response()->json([
            'success' => true,
            'message' => 'Absensi berhasil diverifikasi! E-Sertifikat PDF telah dikirim otomatis ke email peserta.'
        ]);
    }
}