<?php
declare(strict_types=1);

use Celena\Core\Database\Blueprint;
use Celena\Core\Database\Connection;
use Celena\Core\Database\Schema;

/**
 * Настраиваемые цели аналитики. Заменяют захардкоженные клики тел/WhatsApp/email.
 * type: selector_click (клик по CSS-селектору) | url_visit (визит URL)
 *       | form_submit (отправка формы) | custom_event (произвольное событие через window.celenaTrack).
 * Сид 4 дефолтных целей сохраняет текущее поведение «из коробки».
 */
return function (Schema $schema, Connection $conn): void {
    $schema->create('analytics_goals', function (Blueprint $t) {
        $t->id();
        $t->string('slug', 60)->default('');
        $t->string('name', 120)->default('');
        $t->string('type', 20)->default('selector_click');
        $t->string('match_value', 255)->nullable();
        $t->decimal('value_eur', 10, 2)->default(0);
        $t->boolean('active')->default(true);
        $t->integer('sort_order')->default(0);
        $t->datetime('created_at')->nullable();
        $t->unique('slug');
        $t->index('active');
    });

    $now = date('Y-m-d H:i:s');
    $defaults = [
        ['slug' => 'generate_lead',  'name' => 'Заявка с формы', 'type' => 'form_submit',    'match_value' => 'generate_lead',    'value_eur' => 50, 'sort' => 1],
        ['slug' => 'phone_click',    'name' => 'Клик по телефону', 'type' => 'selector_click', 'match_value' => 'a[href^="tel:"]',  'value_eur' => 0,  'sort' => 2],
        ['slug' => 'whatsapp_click', 'name' => 'Клик WhatsApp',   'type' => 'selector_click', 'match_value' => 'a[href*="wa.me"]', 'value_eur' => 0,  'sort' => 3],
        ['slug' => 'email_click',    'name' => 'Клик Email',      'type' => 'selector_click', 'match_value' => 'a[href^="mailto:"]', 'value_eur' => 0, 'sort' => 4],
    ];
    foreach ($defaults as $g) {
        $exists = $conn->builder('analytics_goals')->where('slug', '=', $g['slug'])->first();
        if ($exists !== null) {
            continue;
        }
        $conn->builder('analytics_goals')->insert([
            'slug'        => $g['slug'],
            'name'        => $g['name'],
            'type'        => $g['type'],
            'match_value' => $g['match_value'],
            'value_eur'   => $g['value_eur'],
            'active'      => true,
            'sort_order'  => $g['sort'],
            'created_at'  => $now,
        ]);
    }
};
