<?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;

class CtaBlock extends BlockType
{
    public function key(): string
    {
        return 'cta';
    }

    public function label(): string
    {
        return 'دعوة لإجراء';
    }

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

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

    public function variants(): array
    {
        return [
            'banner' => 'شريط',
            'card' => 'بطاقة',
            'split' => 'مقسّم',
            'gradient' => 'تدرج لوني',
            'image_bg' => 'خلفية صورة',
            'boxed' => 'صندوق بارز',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::text('title', 'العنوان')->required(),
            BlockField::select('heading_level', 'مستوى العنوان', [
                'h2' => 'عنوان قسم (h2)', 'h1' => 'عنوان الصفحة (h1)',
            ])->default('h2'),
            BlockField::select('heading_rule', 'خط أسفل العنوان', [
                'none' => 'بدون', 'accent_bar' => 'شريط بلون التمييز',
            ])->default('none'),
            BlockField::textarea('description', 'الوصف'),
            BlockField::image('image', 'صورة'),
            BlockField::alignment('align', 'المحاذاة'),
            BlockField::repeater('buttons', 'الأزرار', [
                BlockField::text('label', 'النص'),
                BlockField::link('url', 'الرابط'),
                BlockField::select('style', 'النمط', [
                    'primary' => 'أساسي', 'secondary' => 'ثانوي',
                    'outline' => 'محدد', 'white' => 'أبيض',
                ])->default('primary'),
                BlockField::icon('icon', 'أيقونة'),
            ])->required()->max(3),
        ];
    }
}
