<?php

namespace App\Domain\Website\Blocks\Types;

use App\Domain\Website\Blocks\BlockField;
use App\Domain\Website\Blocks\BlockType;
use App\Domain\Website\Blocks\Concerns\HasSectionHeader;
use App\Domain\Website\Enums\BlockCategory;

class MapBlock extends BlockType
{
    use HasSectionHeader;

    public function key(): string
    {
        return 'map';
    }

    public function label(): string
    {
        return 'خريطة';
    }

    public function icon(): string
    {
        return 'map-pin';
    }

    public function category(): BlockCategory
    {
        return BlockCategory::Social;
    }

    public function variants(): array
    {
        return [
            'embed' => 'مضمّنة',
            'full_width' => 'عرض كامل',
            'split' => 'مع بيانات جانبية',
        ];
    }

    public function fields(): array
    {
        return [
            ...$this->sectionHeaderFields(),
            BlockField::toggle('use_branch_data', 'استخدام مواقع الفروع من النظام')->default(true),
            BlockField::repeater('locations', 'المواقع', [
                BlockField::text('name', 'الاسم'),
                BlockField::text('address', 'العنوان'),
                BlockField::map('coords', 'الإحداثيات'),
            ])->showIf('use_branch_data', false),
            BlockField::select('height', 'الارتفاع', [
                'sm' => 'صغير', 'md' => 'متوسط', 'lg' => 'كبير',
            ])->default('md'),
            BlockField::number('zoom', 'مستوى التقريب')->default(13),
        ];
    }
}
