<?php

namespace App\Http\Controllers;

use App\Models\Events;
use Illuminate\Http\Request;
use Yajny\Utils\EventBackgroundTypes;

class EventsController extends GenericController
{

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

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

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

        $request->validate([
            'name' => 'required',
            'slug' => "required|unique:events,slug,{$id},id",
            'start' => 'required|date_format:Y-m-d H:i:s',
            'end' => 'required|date_format:Y-m-d H:i:s|after:start',
            'web_logo' => 'required',
            'app_logo' => 'required',
            'web_status' => 'required|in:0,1',
            'app_status' => 'required|in:0,1',
            'background_type' => 'required|in:' . implode(',', EventBackgroundTypes::getTypes()),
            'background_value' => 'required',
            'app_background_value' => 'required',
            'font_color' => 'required',
            'has_menu_item' => 'required|in:0,1',
            'has_teaser' => 'required|in:0,1'
        ]);

        $event->name = $request->name;
        $event->slug = $request->slug;
        $event->local_start = $request->start;
        $event->local_end = $request->end;
        $event->web_logo = $request->web_logo;
        $event->app_logo = $request->app_logo;
        $event->web_status = $request->web_status;
        $event->app_status = $request->app_status;
        $event->background_type = $request->background_type;
        $event->background_value = $request->background_value;
        $event->app_background_value = $request->app_background_value;
        $event->temp_background = $request->temp_background;
        $event->font_color = $request->font_color;
        $event->flash_sale_days = ($request->flash_sale_days) ? json_encode(explode(',', $request->flash_sale_days)) : '';
        $event->has_menu_item = $request->has_menu_item;
        $event->has_teaser = $request->has_teaser;
        $event->save();
        return redirect()->to('/manage/events');
    }

}
