<?php namespace App\Http\Controllers;

use App\Models\Stripbanners;
use Illuminate\Http\Request;
use Yajny\Models\Region;

class StripBannersController extends GenericController
{
    protected $layout = "layouts.main";
    protected $data = array();
    public $module = 'stripbanners';
    static $per_page = '10';

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

    public function create(Request $request, $id = 0)
    {
        $this->data['regions'] = Region::all();
        return parent::create($request, $id);
    }

    public function edit(Request $request, $id)
    {
        $this->data['regions'] = Region::all();
        return parent::edit($request, $id);
    }

    public function index(Request $request)
    {
        if ($this->access['is_view'] == 0 && $this->access['is_search'] == 0)
            return redirect('dashboard')->with('message', __('core.note_restric'))->with('status', 'error');
        elseif ($this->access['is_view'] == 0 && $this->access['is_search'] == 1)
            $strip_banners = [];
        else
            $strip_banners = Stripbanners::all();

        return view('manage.stripbanners.index', array_merge($this->data, [
            'strip_banners' => $strip_banners,
            'access' => $this->access
        ]));
    }

    public function store(Request $request)
    {
        if (isset($request->id) && !empty($request->id)) {
            $strip_banner = Stripbanners::where('id', $request->id)->first();
        } else {
            $strip_banner = new Stripbanners();
        }

        $request->validate([
            'text' => 'required',
            'store_id' => 'required|exists:stores,id',
            'platform' => 'required|in:web,app,both',
            'link_type' => 'required|in:internal,external,url',
            'link' => 'required',
            'app_link' => 'required',
            'app_deep_link' => 'nullable',
            'is_active' => 'required|in:0,1',
            'from' => 'required|date_format:Y-m-d H:i:s',
            'to' => 'required|date_format:Y-m-d H:i:s|after:from',
            'background_color' => 'required',
            'text_color' => 'required',
            'region' => 'required|in:' . implode(',', array_merge(Region::all()->pluck('code')->toArray(), ['global']))
        ]);

        $strip_banner->text = $request->text;
        $strip_banner->store_id = $request->store_id;
        $strip_banner->platform = $request->platform;
        $strip_banner->link_type = $request->link_type;
        $strip_banner->link = $request->link;
        $strip_banner->app_link = $request->app_link;
        $strip_banner->app_deep_link = $request->app_deep_link;
        $strip_banner->is_active = $request->is_active;
        $strip_banner->local_from = $request->from;
        $strip_banner->local_to = $request->to;
        $strip_banner->background_color = $request->background_color;
        $strip_banner->text_color = $request->text_color;
        $strip_banner->region = $request->region;
        $strip_banner->save();
        return redirect()->to('/manage/stripbanners');
    }

}
