<?php namespace App\Http\Controllers;

use App\Models\Ads;
use Illuminate\Http\Request;

class AdsController extends GenericController
{

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

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

//    public function index(Request $request)
//    {
//        $access = $this->access;
//        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)
//            $ads = [];
//        else
//            $ads = Ads::orderBy('created_at', 'desc')->get();
//        return view('manage.ads.index', compact('ads', 'access'));
//    }

    public function store(Request $request)
    {
        if (isset($request->id) && !empty($request->id)) {
            $ad = Ads::withoutGlobalScopes()->find($request->id);
        } else {
            $ad = new Ads();
        }

        $request->validate([
            'label' => "required",
            'status' => "required|in:active,inactive",
            'link_type' => "required|in:internal,external,url,coupon,stream",
            'coupon_code' => "required_if:link_type,coupon",
            'promo_text' => "required_if:link_type,coupon,stream|array",
            'title' => "required_if:link_type,coupon|array",
            'start_at' => "required|date_format:Y-m-d H:i:s",
            'end_at' => "nullable|date_format:Y-m-d H:i:s|after:start_at",
            'region_code' => "required",
            'position_id' => "required|exists:positions,id",
            'link' => "required|array",
            'app_link' => "required|array",
            'main_image_en' => 'required',
            'main_image_ar' => 'required',
            'mob_image_en' => 'required',
            'mob_image_ar' => 'required',
        ]);
        $ad->label = $request->label;
        $ad->store_id = $request->store_id;
        $ad->category_id = $request->category_id;
        $ad->position_id = $request->position_id;
        $ad->image = ['en' => $request->main_image_en, 'ar' => $request->main_image_ar];
        $ad->mob_image = ['en' => $request->mob_image_en, 'ar' => $request->mob_image_ar];
        $ad->link_type = $request->link_type;
        $ad->link = $request->link;
        $ad->app_link = $request->app_link;
        $ad->app_deep_link = $request->app_deep_link;
        $ad->status = $request->status;
        $ad->ord = $request->ord;
        $ad->region_code = json_encode($request->region_code);
        $ad->promo_text = $request->promo_text;
        $ad->title = $request->title;
        $ad->coupon_code = $request->coupon_code;
        $ad->local_start_at = $request->start_at;
        $ad->local_end_at = ($request->end_at) ? $request->end_at : null;
        $ad->save();
        return redirect()->to('/manage/ads');
    }

}
