<?php

namespace KupShop\B2BBundle\Twig\Components\B2BUserRegistration;

use KupShop\ComponentsBundle\Twig\Components\Utils\Forms\BaseComponentEmail;

class B2BUserRegistrationEmail extends BaseComponentEmail
{
    protected static $name = 'Registrace do b2b';
    protected static $type = 'B2BUSERREGISTRATIONEMAIL_TEMPLATE';
    protected $subject = 'Registrace do b2b';
    protected bool $formDataToTemplate = true;

    public function renderEmail($message, $data = [], $base_template = '@B2B/emails/b2b-registration.html.twig'): array
    {
        return parent::renderEmail($message, $data, $base_template);
    }

    public static function getPlaceholders()
    {
        $placeholders = parent::getPlaceholders();

        $placeholders[self::$type] = array_merge($placeholders[self::$type] ?? [], [
            'DATA_NAME' => ['text' => 'Jméno uživatele'],
            'DATA_SURNAME' => ['text' => 'Přijmení uživatele'],
            'DATA_EMAIL' => ['text' => 'Email uživatele'],
            'DATA_INVOICE_EMAIL' => ['text' => 'Fakturační email uživatele'],
            'DATA_COMPANY' => ['text' => 'Název firmy uživatele'],
            'DATA_ICO' => ['text' => 'IČO uživatele'],
            'DATA_DIC' => ['text' => 'DIČ uživatele'],
            'DATA_STREET' => ['text' => 'Ulice a č.p. uživatele'],
            'DATA_CITY' => ['text' => 'Město uživatele'],
            'DATA_PSC' => ['text' => 'PSČ uživatele'],
            'DATA_COUNTRY' => ['text' => 'Stát'],
            'DATA_ADDITIONAL_ADDRESS' => ['text' => 'Upřesnění adresy (firma, areál…) uživatele'],
            'DATA_INAME' => ['text' => 'Dodání na jinou adresu - jméno uživatele'],
            'DATA_ISURNAME' => ['text' => 'Dodání na jinou adresu - Příjmení uživatele'],
            'DATA_ISTREET' => ['text' => 'Dodání na jinou adresu - Ulice a č.p. uživatele'],
            'DATA_ICITY' => ['text' => 'Dodání na jinou adresu - Město uživatele'],
            'DATA_IPSC' => ['text' => 'Dodání na jinou adresu - PSČ uživatele'],
        ]);

        return $placeholders;
    }

    public function replacePlaceholdersItem($placeholder)
    {
        $replace = parent::replacePlaceholdersItem($placeholder);

        if (is_null($replace)) {
            return $this->data[$placeholder] ?? null;
        }

        return $replace;
    }
}
