<?php

namespace App\Domain\Website\Blocks\Types;

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

/** Phone / email / address tiles, each optionally actionable. */
class InfoCardsBlock extends BlockType
{
    public function key(): string
    {
        return 'info_cards';
    }

    public function label(): string
    {
        return 'بطاقات معلومات التواصل';
    }

    public function icon(): string
    {
        return 'phone';
    }

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

    public function variants(): array
    {
        return [
            'cards' => 'بطاقات',
            'stacked' => 'قائمة رأسية',
            'inline' => 'صف واحد',
            'bordered' => 'بإطار',
            'icon_circle' => 'أيقونة دائرية',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::text('title', 'العنوان'),
            BlockField::repeater('items', 'البطاقات', [
                BlockField::icon('icon', 'أيقونة'),
                BlockField::text('label', 'التسمية'),
                BlockField::text('value', 'القيمة'),
                BlockField::select('action', 'نوع الإجراء', [
                    'none' => 'بدون',
                    'tel' => 'اتصال',
                    'mailto' => 'بريد',
                    'whatsapp' => 'واتساب',
                    'maps' => 'خرائط',
                    'url' => 'رابط',
                ])->default('none'),
                BlockField::text('action_value', 'قيمة الإجراء'),
            ])->required(),
        ];
    }
}
