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

/**
 * Repeatable cards. Covers vision/mission/values, service tiles, feature grids —
 * anything that is "N similar things side by side".
 */
class CardGridBlock extends BlockType
{
    use HasSectionHeader;

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

    public function label(): string
    {
        return 'شبكة بطاقات';
    }

    public function description(): string
    {
        return 'بطاقات متكررة: الرؤية والرسالة، المميزات، الخدمات';
    }

    public function icon(): string
    {
        return 'rectangle-group';
    }

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

    public function variants(): array
    {
        return [
            'cards' => 'بطاقات',
            'bordered' => 'بإطار',
            'icon_top' => 'أيقونة بالأعلى',
            'icon_start' => 'أيقونة بالجانب',
            'numbered' => 'مرقّمة',
            'glass' => 'زجاجي',
            'minimal' => 'مبسّط',
        ];
    }

    public function fields(): array
    {
        return [
            ...$this->sectionHeaderFields(),
            BlockField::select('columns', 'عدد الأعمدة', [
                '1' => '1', '2' => '2', '3' => '3', '4' => '4',
            ])->default('3'),
            BlockField::repeater('items', 'البطاقات', [
                BlockField::icon('icon', 'أيقونة'),
                BlockField::image('image', 'صورة'),
                BlockField::text('title', 'العنوان'),
                BlockField::richText('body', 'النص'),
                BlockField::link('url', 'رابط'),
                BlockField::color('accent', 'لون مميز'),
            ])->required(),
        ];
    }
}
