<?php namespace App\Http\Controllers;

use App\Models\Regions;
use App\Traits\NotDeletableTrait;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class RegionsController extends GenericController
{

    use NotDeletableTrait;

    protected $layout = "layouts.main";
    protected $data = array();
    public $module = 'regions';
    static $per_page = '10';

    public function __construct()
    {
        $this->model = new Regions();
        parent::__construct();
    }

    /**
     * @param Request $request
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function store(Request $request)
    {
        $code = 'NULL';
        $flagvalidation= 'required';
        if (isset($request->old_code) && !empty($request->old_code)) {
            $code = $request->old_code;
            $region = Regions::find($code);
            $flagvalidation= 'sometimes';
        } else {
            $region = new Regions();
        }
        $request->validate([
            'code' => "required|unique:regions,code,{$code},code",
            'flag' => "{$flagvalidation}",
            'default_country' => 'required|exists:countries,code'
        ]);
        $region->code = $request->code;
        $region->name = $request->name;
        $region->active = $request->active;
        $region->default_country = $request->default_country;
        $region->flag = $request->flag;
        $region->save();
        return redirect()->to('/manage/regions');
    }
}
