<?php

namespace App\PageBuilder\Components\Dynamic;

use App\PageBuilder\PageComponent;

class NewsletterSignupComponent extends PageComponent
{
    public function key(): string { return 'newsletter_signup'; }
    public function category(): string { return 'dynamic'; }
    public function label(): string { return 'Newsletter Signup'; }
    public function icon(): string { return 'fas fa-paper-plane'; }

    public function schema(): array
    {
        return [
            'title' => ['type' => 'text', 'default' => 'Bültenimize Abone Ol'],
            'subtitle' => ['type' => 'textarea'],
            'submit_text' => ['type' => 'text', 'default' => 'Abone Ol'],
            'placeholder_text' => ['type' => 'text', 'label' => 'Input placeholder', 'default' => 'E-posta adresiniz'],
            'consent_text' => ['type' => 'textarea', 'label' => 'KVKK / izin metni'],
            'bg_image' => ['type' => 'image', 'label' => 'Arka plan görseli'],
            'overlay_opacity' => ['type' => 'select', 'label' => 'Overlay yoğunluğu', 'options' => [0, 0.2, 0.4, 0.6, 0.8], 'default' => 0.5],
            'options' => [
                'color' => ['type' => 'color_token', 'default' => 'primary'],
                'padding' => ['type' => 'padding_token', 'default' => 'lg'],
                'alignment' => ['type' => 'alignment_token', 'default' => 'center'],
                'layout' => ['type' => 'select', 'label' => 'Yerleşim', 'options' => ['inline', 'stacked'], 'default' => 'inline'],
            ],
        ];
    }

    public function defaults(): array
    {
        return [
            'title' => 'Bültenimize Abone Ol',
            'subtitle' => 'Yeni içeriklerden ilk siz haberdar olun',
            'submit_text' => 'Abone Ol',
            'placeholder_text' => 'E-posta adresiniz',
            'consent_text' => null,
            'bg_image' => null,
            'overlay_opacity' => 0.5,
            'options' => ['color' => 'primary', 'padding' => 'lg', 'alignment' => 'center', 'layout' => 'inline'],
        ];
    }

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