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

/** Image beside prose — the classic "about us" arrangement. */
class TextImageBlock extends BlockType
{
    public function key(): string
    {
        return 'text_image';
    }

    public function label(): string
    {
        return 'نص وصورة';
    }

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

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

    public function variants(): array
    {
        return [
            'image_end' => 'الصورة في النهاية',
            'image_start' => 'الصورة في البداية',
            'image_background' => 'الصورة كخلفية',
            'overlap' => 'متداخل',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::text('eyebrow', 'نص علوي صغير'),
            BlockField::text('title', 'العنوان')->required(),
            BlockField::richText('body', 'النص'),
            BlockField::select('heading_rule', 'خط أسفل العنوان', [
                'none' => 'بدون', 'accent_bar' => 'شريط بلون التمييز',
            ])->default('none'),
            BlockField::toggle('body_accent_edge', 'خط جانبي بلون التمييز بجوار النص'),
            BlockField::select('image_frame', 'إطار الصورة', [
                'none' => 'بدون', 'offset_outline' => 'إطار مزاح', 'border' => 'حد رفيع', 'tilt' => 'مائل',
            ])->default('none'),
            BlockField::image('image', 'الصورة')->required(),
            BlockField::text('image_caption', 'تعليق على الصورة'),
            BlockField::select('image_ratio', 'نسبة الصورة', [
                'square' => 'مربع', 'portrait' => 'طولي',
                'landscape' => 'عرضي', 'wide' => 'عريض', 'auto' => 'تلقائي',
            ])->default('landscape'),
            BlockField::repeater('bullets', 'نقاط', [
                BlockField::icon('icon', 'أيقونة'),
                BlockField::text('text', 'النص'),
            ]),
            BlockField::repeater('buttons', 'الأزرار', [
                BlockField::text('label', 'النص'),
                BlockField::link('url', 'الرابط'),
                BlockField::select('style', 'النمط', [
                    'primary' => 'أساسي', 'secondary' => 'ثانوي', 'outline' => 'محدد',
                ])->default('primary'),
            ])->max(2),
        ];
    }
}
