<?php

namespace App\PageBuilder\Components\Marketing;

use App\PageBuilder\PageComponent;

class TestimonialsComponent extends PageComponent
{
    public function key(): string { return 'testimonials'; }
    public function category(): string { return 'marketing'; }
    public function label(): string { return 'Testimonials'; }
    public function icon(): string { return 'fas fa-quote-right'; }

    public function schema(): array
    {
        return [
            'title' => ['type' => 'text'],
            'items' => [
                'type' => 'repeater',
                'item_schema' => [
                    'quote' => ['type' => 'textarea', 'required' => true],
                    'author' => ['type' => 'text', 'required' => true],
                    'role' => ['type' => 'text'],
                    'avatar' => ['type' => 'image'],
                    'rating' => ['type' => 'select', 'label' => 'Yıldız', 'options' => [0, 1, 2, 3, 4, 5], 'default' => 5],
                ],
                'min' => 1, 'max' => 6,
            ],
            'options' => [
                'columns' => ['type' => 'select', 'options' => [1,2,3], 'default' => 3],
                'color' => ['type' => 'color_token', 'default' => 'light'],
                'padding' => ['type' => 'padding_token', 'default' => 'lg'],
                'style' => ['type' => 'select', 'label' => 'Stil', 'options' => ['cards', 'minimal', 'quote'], 'default' => 'cards'],
                'show_avatar' => ['type' => 'boolean', 'label' => 'Avatar göster', 'default' => true],
                'show_rating' => ['type' => 'boolean', 'label' => 'Yıldız göster', 'default' => true],
            ],
        ];
    }

    public function defaults(): array
    {
        return [
            'title' => 'Müşterilerimiz Diyor ki',
            'items' => [
                ['quote' => 'Harika hizmet!', 'author' => 'Ahmet Y.', 'role' => 'CEO', 'avatar' => null, 'rating' => 5],
            ],
            'options' => ['columns' => 3, 'color' => 'light', 'padding' => 'lg'],
        ];
    }

    public function render(array $data, array $options): string
    {
        return view('page-builder.components.testimonials', compact('data', 'options'))->render();
    }
}
