<?php

namespace App\Mail;

use App\Models\Lead;
use App\Models\SurveyResponse;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class SurveyCompletedMail extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;

    public function __construct(public Lead $lead, public SurveyResponse $survey) {}

    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'NSMA — Танай маркетингийн оношлогооны тайлан',
            replyTo: ['info@nsma.mn' => 'NSMA Зөвлөх'],
        );
    }

    public function content(): Content
    {
        $tierMap = [
            'lite'     => ['name' => 'Lite',     'price' => '₮290,000',   'reason' => 'Founder танд цаг бий — өөрөө бөглөж дуусгана.'],
            'standard' => ['name' => 'Standard', 'price' => '₮890,000',   'reason' => 'Багаараа цэгцлэх 2-цагийн workshop хэрэгтэй.'],
            'pro'      => ['name' => 'Pro',      'price' => '₮2,490,000', 'reason' => 'Серьез advisory + 3-сар follow-up хэрэгтэй.'],
        ];
        $t = $tierMap[$this->survey->recommended_tier] ?? $tierMap['lite'];

        $painMap = [
            'new-customers' => ['issue' => 'Шинэ хэрэглэгч олох нь хэцүү', 'focus' => 'Хэрэглэгчээ ойлгож, тэдэнд тохирох сувгаар хүрэх.'],
            'retention'     => ['issue' => 'Хуучин хэрэглэгчид буцаж ирэхгүй', 'focus' => 'Брэндийн харилцаа + давтан худалдан авалт.'],
            'content'       => ['issue' => 'Сошиал пост үр дүн өгөхгүй', 'focus' => '40-30-20-10 контентын пирамид баримтлах.'],
            'ads'           => ['issue' => 'Зарын мөнгө үрэгддэг', 'focus' => '3-түвшний funnel (Таниулах→Холбогдох→Худалдаа).'],
            'confused'      => ['issue' => 'Юу хийх ёстойг мэдэхгүй', 'focus' => 'NSMA-гийн 5-алхамт системийг дагах.'],
            'time'          => ['issue' => 'Founder цаг гарахгүй', 'focus' => 'Standard эсвэл Pro — зөвлөхтэй хамтран ажиллах.'],
        ];
        $d = $painMap[$this->survey->pain_point] ?? ['issue' => '—', 'focus' => '—'];

        $age = $this->survey->persona_age;
        $channelRec = match (true) {
            $age === '18-25' => 'Instagram + TikTok',
            in_array($age, ['25-35','35-45']) => 'Facebook + Instagram',
            $age === '45-60' => 'Facebook + Viber (TV дэмжих)',
            $age === '60+' => 'Facebook + Viber + TV/радио',
            default => 'Facebook + Instagram',
        };

        $timeMap = [
            'morning' => 'өглөө 7-9 цагт',
            'lunch'   => 'үдийн 12-14 цагт',
            'evening' => 'үдэш 17-19 цагт',
            'night'   => 'шөнө 21-23 цагт',
        ];
        $postTime = $timeMap[$this->survey->persona_time] ?? 'өглөө 8-9 эсвэл үдэш 18-20';

        return new Content(
            view: 'emails.survey-completed',
            with: [
                'lead'        => $this->lead,
                'survey'      => $this->survey,
                'tierName'    => $t['name'],
                'tierPrice'   => $t['price'],
                'tierReason'  => $t['reason'],
                'diagnosis'   => $d,
                'channelRec'  => $channelRec,
                'postTime'    => $postTime,
                'aiAvailable' => (bool) config('services.claude.api_key'),
            ],
        );
    }
}
