<?php

namespace App\PageBuilder\Components\Content;

use App\PageBuilder\PageComponent;

class QuoteComponent extends PageComponent
{
    public function key(): string { return 'quote'; }
    public function category(): string { return 'content'; }
    public function label(): string { return 'Quote / Pullquote'; }
    public function icon(): string { return 'fas fa-quote-left'; }

    public function schema(): array
    {
        return [
            'quote' => ['type' => 'textarea', 'label' => 'Alıntı', 'required' => true],
            'author' => ['type' => 'text', 'label' => 'Yazar'],
            'role' => ['type' => 'text', 'label' => 'Rol/Şirket'],
            'avatar' => ['type' => 'image', 'label' => 'Yazar görseli (opsiyonel)'],
            'options' => [
                'color' => ['type' => 'color_token', 'default' => 'light'],
                'padding' => ['type' => 'padding_token', 'default' => 'lg'],
                'alignment' => ['type' => 'alignment_token', 'default' => 'center'],
                'style' => ['type' => 'select', 'label' => 'Stil', 'options' => ['plain', 'bordered', 'card', 'large'], 'default' => 'large'],
                'show_quote_mark' => ['type' => 'boolean', 'label' => 'Tırnak işareti göster', 'default' => true],
            ],
        ];
    }

    public function defaults(): array
    {
        return [
            'quote' => 'Bu hizmet beklentilerimi katlayarak aştı.',
            'author' => 'Adınız Soyadınız',
            'role' => 'CEO, Şirket Adı',
            'avatar' => null,
            'options' => ['color' => 'light', 'padding' => 'lg', 'alignment' => 'center', 'style' => 'large', 'show_quote_mark' => true],
        ];
    }

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