<?php

namespace App\Http\Controllers;

use App\Mail\AdminNewLeadMail;
use App\Models\ContactMessage;
use App\Models\Lead;
use App\Models\Meeting;
use Illuminate\Support\Facades\Mail;
use Illuminate\Http\Request;

class ContactController extends Controller
{
    /**
     * Холбоо барих хуудас.
     */
    public function index()
    {
        return view('frontend.contact');
    }

    /**
     * Холбоо барих маягтаас ирсэн мессеж (AJAX).
     */
    public function store(Request $request)
    {
        $data = $request->validate([
            'name'    => 'required|string|max:255',
            'email'   => 'required|email|max:255',
            'phone'   => 'nullable|string|max:30',
            'subject' => 'nullable|string|max:255',
            'message' => 'required|string|max:5000',
        ], [
            'name.required'    => 'Нэрээ оруулна уу.',
            'email.required'   => 'И-мэйлээ оруулна уу.',
            'email.email'      => 'Зөв и-мэйл оруулна уу.',
            'message.required' => 'Зурвас бичнэ үү.',
        ]);

        $message = ContactMessage::create([
            ...$data,
            'status'     => 'new',
            'ip_address' => $request->ip(),
        ]);

        // Lead-д бас бүртгэх (CRM-д харагдана)
        $lead = Lead::updateOrCreate(
            ['email' => $data['email']],
            [
                'name'   => $data['name'],
                'phone'  => $data['phone'] ?? null,
                'source' => 'contact',
                'status' => 'new',
                'notes'  => $data['subject'] ?? '' . "\n" . $data['message'],
            ]
        );

        // Admin notification
        try {
            Mail::to(config('mail.admin_email', 'info@nsma.mn'))->queue(new AdminNewLeadMail($lead));
        } catch (\Exception $e) {
            \Log::warning('Failed to queue contact email: ' . $e->getMessage());
        }

        if ($request->wantsJson() || $request->ajax()) {
            return response()->json([
                'success' => true,
                'message' => 'Таны зурвас амжилттай илгээгдлээ. Бид удахгүй холбогдох болно.',
            ]);
        }

        return back()->with('success', 'Таны зурвас амжилттай илгээгдлээ.');
    }
}
