<?php

namespace App\Http\Controllers\Admin\Config\Setting;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Config;
use App\Models\FileLib;

class AccessController extends Controller
{
    private Config $configModel;

    public function __construct(Config $config)
    {
        $this->configModel = $config;
    }

    /**
     * 접근
     * @method GET
     * @see /admin/config/setting/access
     */
    public function index()
    {
        return view('admin.config.setting.access', []);
    }

    /**
     * 접근 저장
     * @method POST
     * @see /admin/config/setting/access
     */
    public function store(Request $request, FileLib $fileLib)
    {
        $rules = [
            'admin_ip_whitelist' => 'string|nullable',
            'site_ip_blacklist' => 'string|nullable',
            'site_ip_whitelist' => 'string|nullable',
            'site_blacklist_title' => 'string|nullable',
            'site_blacklist_content' => 'string|nullable',
        ];

        $attributes = [
            'admin_ip_whitelist' => '관리자 페이지 접근 가능 IP',
            'site_ip_blacklist' => '사이트 접근 불가 IP',
            'site_ip_whitelist' => '사이트 접근 가능 IP',
            'site_blacklist_title' => '사이트 차단시 안내문 제목',
            'site_blacklist_content' => '사이트 차단시 안내문 내용'
        ];

        $posts = $this->validate($request, $rules, [], );
        $posts['site_blacklist_content'] = $fileLib->saveAsImage($posts['site_blacklist_content'], UPLOAD_PATH_EDITOR);

        $this->configModel->save($posts, $attributes);

        $message = '접근 정보가 저장되었습니다.';
        return redirect()->route('admin.config.setting.access.index')->with('message', $message);
    }
}
