<?php

namespace App\PageBuilder\Components\Marketing;

use App\PageBuilder\PageComponent;

class MapComponent extends PageComponent
{
    public function key(): string { return 'map'; }
    public function category(): string { return 'marketing'; }
    public function label(): string { return 'Map'; }
    public function icon(): string { return 'fas fa-map-marker-alt'; }

    public function schema(): array
    {
        return [
            'title' => ['type' => 'text', 'label' => 'Bölüm başlığı (opsiyonel)'],
            'address' => ['type' => 'textarea', 'label' => 'Adres metni / arama'],
            'embed_url' => ['type' => 'textarea', 'label' => 'Tam embed URL (önceliklidir, OSM/Google iframe src)'],
            'lat' => ['type' => 'text', 'label' => 'Enlem (örn 41.0082)'],
            'lng' => ['type' => 'text', 'label' => 'Boylam (örn 28.9784)'],
            'options' => [
                'color' => ['type' => 'color_token', 'default' => 'transparent'],
                'padding' => ['type' => 'padding_token', 'default' => 'md'],
                'height' => ['type' => 'select', 'label' => 'Harita yüksekliği', 'options' => ['300px', '400px', '500px', '600px'], 'default' => '400px'],
                'zoom' => ['type' => 'number', 'label' => 'Zoom', 'min' => 1, 'max' => 19, 'default' => 14],
                'rounded' => ['type' => 'select', 'label' => 'Köşe yuvarlama', 'options' => ['none', 'sm', 'md', 'lg'], 'default' => 'md'],
            ],
        ];
    }

    public function defaults(): array
    {
        return [
            'title' => null,
            'address' => 'İstanbul, Türkiye',
            'embed_url' => null,
            'lat' => '41.0082',
            'lng' => '28.9784',
            'options' => ['color' => 'transparent', 'padding' => 'md', 'height' => '400px', 'zoom' => 14, 'rounded' => 'md'],
        ];
    }

    public function render(array $data, array $options): string
    {
        return view('page-builder.components.map', compact('data', 'options'))->render();
    }
}
