<?php

namespace App\Http\Controllers\Admin;

use App\Models\RelationPortalStatusPublic;
use App\Models\Review;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Routing\Redirector;
use App\Models\History;
use App\Models\MstStore;
use App\Models\Article;
use App\Models\RelationPortalPublic;
use Illuminate\Support\Facades\App;

class TopController extends Controller
{
    /**
     * @return string
     */
    public function index(Request $request)
    {
        $user = Auth::user();
        $data['history_list'] = History::getHistoryByCompany($user->company_id);
        //todo
        $param = $request->type;
        $user = Auth::user();
        $selected = $user->store_id;
        if(isset($_GET['store_id']) && is_numeric($_GET['store_id'])){
            $selected = $_GET['store_id'];
        }
        if($user->role == 1){
            $data['store_list'] = MstStore::getDataAll($user->company_id);
            if(!isset($_GET['store_id'])){
                $selected = 0;
            }
            $data['user_role'] = 'true';
        }else{
            $data['store_list'] = MstStore::getDataAll($user->company_id, 'true');
        }
        $total_posted = Article::getArticleTotal($selected, 2, 2, "", 2);
        $total_posted_null = Article::getArticleTotal($selected, 2, "", 1, 2);
        $total_nopost = Article::getArticleTotal($selected, "", "", 1, 2);
        $total_mansion = Article::getArticleTotal($selected, "", "", 1, "", 1);
        $data['total_posted'] = $total_posted;
        $data['total_posted_null'] = $total_posted_null;
        $data['total_nopost'] = $total_nopost;
        $data['total_mansion'] = $total_mansion;
        $data['selected_store'] = $selected;
        //status = 2: nopublic status = 1: public = 0

        $status_public = RelationPortalStatusPublic::getArticleTotal(1, $user->store_id);
        $data['time_got_portal'] = '';
        if(!empty($status_public)){
            $created_at = Carbon::parse($status_public->created_at);
            $data['time_got_portal'] = $created_at->format('Y-m-d H:i');
        }


        $data['shop'] = MstStore::getDataByCode($user->company_id, $user->store_id);

        $reviews = Review::query()->with('facility')->where('r_date', '>', Carbon::parse('2023-10-23')->startOfDay())->orderByDesc('r_date')->get();
        $data['reviews'] = $reviews;

        if($param == 1) {
            return view('admin.pages.top-sales');
        }

        return view('admin.pages.top', $data);
    }
}
