<?php

namespace App\Domain\Website\Blocks\Types;

use App\Domain\Website\Blocks\BlockField;
use App\Domain\Website\Blocks\BlockType;
use App\Domain\Website\Blocks\Concerns\HasSectionHeader;
use App\Domain\Website\Enums\BlockCategory;

class StatsBlock extends BlockType
{
    use HasSectionHeader;

    public function key(): string
    {
        return 'stats';
    }

    public function label(): string
    {
        return 'أرقام وإحصائيات';
    }

    public function icon(): string
    {
        return 'chart-bar';
    }

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

    public function variants(): array
    {
        return [
            'inline' => 'صف واحد',
            'cards' => 'بطاقات',
            'bordered' => 'بفواصل',
            'big_numbers' => 'أرقام كبيرة',
        ];
    }

    public function fields(): array
    {
        return [
            ...$this->sectionHeaderFields(),
            BlockField::toggle('animate_count', 'تحريك العد التصاعدي')->default(true),
            BlockField::repeater('items', 'الأرقام', [
                BlockField::icon('icon', 'أيقونة'),
                BlockField::text('value', 'القيمة'),
                BlockField::text('label', 'التسمية'),
                BlockField::text('suffix', 'لاحقة')->help('مثال: +  أو  %'),
                BlockField::select('source', 'المصدر', [
                    'manual' => 'يدوي',
                    'participants' => 'عدد اللاعبين (تلقائي)',
                    'programs' => 'عدد البرامج (تلقائي)',
                    'branches' => 'عدد الفروع (تلقائي)',
                    'trainers' => 'عدد المدربين (تلقائي)',
                ])->default('manual'),
            ])->required(),
        ];
    }
}
