<?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' => 'مقسّم',
            'centered' => 'وسط',
            'card' => 'بطاقة',
            'quote_focus' => 'التركيز على الاقتباس',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::text('section_title', 'عنوان القسم'),
            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', 'الرابط'),
            ]),
        ];
    }
}
