<?php

namespace itguild\forms\inputs;

use itguild\forms\templates\Simple\SimpleTemplate;
use itguild\forms\traits\CreateParams;
use itguild\forms\inputs\BaseInput;

class Checkbox extends BaseInput
{
    use CreateParams;

    private string $name;
    private string $value;
    private array $paramsArray;



    /**
     * @param string $name
     * @param string $value
     * @param array $paramsArray
     */
    public function __construct(string $name, string $value = '', array $paramsArray = [])
    {
        $this->name = $name;
        $this->value = $value;
        $this->paramsArray = $paramsArray;
        $this->inputTemplate = new SimpleTemplate();
    }

    /**
     * @return $this
     */
    public function create(): self
    {
        $paramsString = $this->createParams($this->paramsArray);
        $checkBox = "<input name='$this->name' type='checkbox' value='$this->value' $paramsString >";
        $label = "";

        $this->createLabel();

        $this->html = str_replace('{input}', $checkBox, $this->inputTemplate->getInputTemplate());
        $this->html = str_replace('{label}', $this->labelString, $this->html);

        return $this;
    }

    /**
     * @param string $name
     * @param string $value
     * @param array $paramsArray
     * @return void
     */
    public static function build(string $name, string $value, array $paramsArray): void
    {
        $checkBox = new self($name, $value, $paramsArray);
        $checkBox->create()->render();

    }
}