<?php

namespace App\Controllers;

use App\Controllers\AbstractWebController;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;

class Home extends AbstractWebController
{
    private $_layout = 'front';
    protected $layouts = [];
    public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
    {
        parent::initController($request, $response, $logger);
        if ($this->service === null) {
            $this->service = service('customer_clientservice');
        }
        $this->addActionPaths($this->_layout);
        $this->layouts = config('Layout')->layouts[$this->_layout] ?? [];
    }
    protected function action_init_process(string $action, array $formDatas = []): void
    {
        parent::action_init_process($action, $formDatas);
        $this->addViewDatas('layout', $this->layouts);
        $this->addViewDatas('helper', $this->service->getHelper());
        $this->service->getActionForm()->action_init_process($action, $formDatas);
        $this->addViewDatas('formFields', $this->service->getActionForm()->getFormFields());
        $this->addViewDatas('formRules', $this->service->getActionForm()->getFormRules());
        $this->addViewDatas('formFilters', $this->service->getActionForm()->getFormFilters());
        $this->addViewDatas('formOptions', $this->service->getActionForm()->getFormOptions());
    }
    //Index,FieldForm관련
    public function index(): string
    {
        $action = __FUNCTION__;
        $this->action_init_process($action);
        return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate') ?? "welcome");
    }
}
