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

/**
 * A featured person: chairman, founder, head coach.
 * Carries free-form credential rows and an achievements list, so it fits any
 * organisation without the fields being named for one client's org chart.
 */
class ProfileCardBlock extends BlockType
{
    public function key(): string
    {
        return 'profile_card';
    }

    public function label(): string
    {
        return 'بطاقة شخصية';
    }

    public function description(): string
    {
        return 'لعرض رئيس مجلس الإدارة أو المؤسس أو شخصية بارزة';
    }

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

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

    public function variants(): array
    {
        return [
            'split' => 'مقسّم',
            'overlay_split' => 'مقسّم مع اسم على الصورة',
            'centered' => 'وسط',
            'card' => 'بطاقة',
            'quote_focus' => 'التركيز على الاقتباس',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::text('eyebrow', 'نص علوي صغير'),
            BlockField::text('section_title', 'عنوان القسم'),
            BlockField::select('heading_level', 'مستوى العنوان', [
                'h2' => 'عنوان قسم (h2)', 'h1' => 'عنوان الصفحة (h1)',
            ])->default('h2'),
            BlockField::select('heading_rule', 'خط أسفل العنوان', [
                'none' => 'بدون', 'accent_bar' => 'شريط بلون التمييز',
            ])->default('none'),
            BlockField::text('callout_label', 'عنوان الصندوق المميز'),
            BlockField::text('callout_value', 'محتوى الصندوق المميز'),
            BlockField::image('photo', 'الصورة')->required(),
            BlockField::text('name', 'الاسم')->required(),
            BlockField::text('role', 'المنصب'),
            BlockField::text('badge', 'شارة')->help('مثال: منذ 2008'),
            BlockField::richText('bio', 'نبذة'),
            BlockField::textarea('quote', 'اقتباس'),

            // Free-form label/value rows — birth date, education, specialisation…
            BlockField::repeater('details', 'بيانات', [
                BlockField::icon('icon', 'أيقونة'),
                BlockField::text('label', 'التسمية'),
                BlockField::text('value', 'القيمة'),
            ]),

            BlockField::repeater('achievements', 'الإنجازات', [
                BlockField::text('text', 'الإنجاز'),
            ]),

            BlockField::repeater('social', 'روابط التواصل', [
                BlockField::icon('icon', 'المنصة'),
                BlockField::link('url', 'الرابط'),
            ]),
        ];
    }
}
