<?php

namespace App\Http\Controllers\Backend;

use App\Models\Amenity;
use App\Models\PostNews;
use App\User;
use Illuminate\Http\Request;
use Yajra\Datatables\Datatables;

class NewsController extends AdminController
{

    public function index(Request $request)
    {
        if (auth('backend')->user()->type == User::RENTER) {
            abort(403);
        }

        if (auth('backend')->user()->type == User::EDITOR) {
            return redirect()->to(url('admin/blog'));
        }

        return view('admin.news.list');
    }

    //get data
    public function getNewsByAttribute(Request $request)
    {

        $items = PostNews::all();

        if (auth('backend')->check()) {

            if (auth('backend')->user()->type == User::RENTER) {
                abort(403);
            }

            if (auth('backend')->user()->type == User::OWNER) {
                abort(403);
            }

            if (auth('backend')->user()->type == User::STAFF) {
                abort(403);
            }
        }

        return Datatables::of($items)
            ->addIndexColumn()
            ->editColumn('title', function ($item){
                return '<p style="width: 150px;margin: 0px">'.$item->title.'</p>';
            })
            ->editColumn('description', function ($item){
                return '<p style="width: 300px;margin: 0px; max-height: 200px; overflow: hidden">'.$item->description.'</p>';
            })
            ->editColumn('image', function ($item) {
                return '<img src="/files/'.$item->image.'" style="width: 200px; height:200px; object-fit: contain"/>';
            })
            ->editColumn('type_id', function ($item) {
                $type_name = \DB::table('post_type')->get();
                foreach ($type_name as $type){
                    if($item->type_id==$type->id){
                        return $type->name;
                    }
                }
            })
            ->editColumn('address', function ($item){
                return $item->address .', '.$item->ward_name.', '.$item->district_name.', '.$item->province_name;
            })
            ->editColumn('price', function ($item){
                return number_format($item->price).' đ';
            })
            ->editColumn('deposit', function ($item){
                return number_format($item->deposit).' đ';
            })
            ->editColumn('size', function ($item){
                return $item->size.' m &sup2;';
            })
            ->editColumn('date_available', function ($item){
                return date('d-m-Y',strtotime($item->date_available));
            })
            ->editColumn('amount_people', function ($item){
                return $item->amount_people.' Người';
            })
            ->editColumn('electricity_price', function ($item){
                if(is_numeric($item->electricity_price)){
                    return number_format($item->electricity_price).$item->electric_unit;
                }
                else{
                    return $item->electricity_price;
                }
            })
            ->editColumn('water_price', function ($item){
                if(is_numeric($item->water_price)){
                    return number_format($item->water_price).$item->water_unit;
                }
                else{
                    return $item->water_price;
                }
            })
            ->addColumn('action', function ($item) {
                $retVal = '';

                if(auth('backend')->user()->type == User::ADMIN)
                {
                    $show_hidden = $item->status==null?"Ẩn tin":"Hiện tin";
                    $retVal = '<a data-hostel="' . $item->id . '" href="javascript:void(0);" data-href="' . url('dang-tin-2/editPostNews/'.str_slug($item->title).'-'.$item->id) . '" class="btn btn-sm btn-outline btn-editable btn-edit-hostel purple"><i class="fa fa-edit"></i> Sửa</a>'
                        . '<a data-id="' . $item->id . '" data-href="#" class="btn btn-sm btn-outline btn-editable btn-delete dark black"><i class="fa fa-trash"></i> Xóa</a>'
                        .'<a data-id="' . $item->id . '" href="#" class="btn btn-outline green show-hidden-post">'.$show_hidden.'</a>';
                }
                if (auth('backend')->user()->can('edit-hostel')) {
                    $retVal .= '<a data-hostel="' . $item->id . '" href="#edit-hostel" data-href="' . url('admin2/hostel/edit', ['id' => $item->id]) . '" data-toggle="modal" class="btn btn-sm btn-outline btn-editable btn-edit-hostel purple"><i class="fa fa-edit"></i> Sửa</a>';
                }

                if (auth('backend')->user()->can('delete-hostel')) {
                    $retVal .= '<a data-id="' . $item->id . '" data-href="' . url('admin2/hostel/delete', ['id' => $item->id]) . '" class="btn btn-sm btn-outline btn-editable btn-delete dark black"><i class="fa fa-trash"></i> Xóa</a>';
                }

                return $retVal;

            })
            ->make(true);
    }

    public function edit($id)
    {
        $postnews = PostNews::find($id);
        if ($postnews) {
            $post = PostNews::find($id);
            $post->join('post_type', 'post_news.type_id', '=', 'post_type.id')->first();
            $amenities = Amenity::where('user_id', 0)->where('type', Amenity::AMENITY)->get();
            $policies = Amenity::where('user_id', 0)->where('type', Amenity::POLICY)->get();
            return view('admin.news.edit', compact('post', 'amenities', 'policies'));
        }

        return redirect()->back()->with('error', 'Dữ liệu không hợp lệ');
    }
}
