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

/** Long-form prose: terms, refund policy, privacy, articles. */
class RichTextBlock extends BlockType
{
    public function key(): string
    {
        return 'rich_text';
    }

    public function label(): string
    {
        return 'نص منسّق';
    }

    public function description(): string
    {
        return 'للصفحات الطويلة: الشروط والأحكام، سياسة الاسترجاع، الخصوصية';
    }

    public function icon(): string
    {
        return 'document-text';
    }

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

    public function variants(): array
    {
        return [
            'default' => 'عادي',
            'prose_narrow' => 'عمود ضيق للقراءة',
            'two_column' => 'عمودان',
            'with_toc' => 'مع فهرس جانبي',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::text('title', 'العنوان'),
            BlockField::select('heading_level', 'مستوى العنوان', [
                'h1' => 'عنوان الصفحة (h1)', 'h2' => 'عنوان قسم (h2)',
            ])->default('h1')
                ->help('اجعله h2 إذا كان هذا القسم داخل صفحة لها عنوان آخر'),
            BlockField::select('heading_rule', 'خط أسفل العنوان', [
                'none' => 'بدون', 'accent_bar' => 'شريط بلون التمييز',
            ])->default('none'),
            BlockField::text('last_updated', 'آخر تحديث'),
            BlockField::richText('body', 'المحتوى'),
            // Numbered legal clauses, each optionally deep-linkable.
            BlockField::repeater('sections', 'أقسام', [
                BlockField::text('heading', 'عنوان القسم'),
                BlockField::richText('body', 'النص'),
                BlockField::text('anchor', 'معرّف الرابط'),
            ]),
        ];
    }
}
