<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\URL;

/**
 * Class ShopIndexController
 *
 * @package App\Http\Controllers
 */
class IndexController extends Controller
{
    protected function _data($query, $limit)
    {
        $currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
        $total = $query->count();
        $totalPage = floor($total / $limit);
        $totalPage += (($total % $limit) > 0) ? 1 : 0;
        $first_page_url = URL::current() . '?page=1';

        if ($totalPage <= 0) return [
            'links' => [
                'first' => $first_page_url,
                'last'  => $first_page_url,
                'next'  => null,
                'prev'  => null,
            ],
            'meta'  => [
                'current_page' => 1,
                'from'         => null,
                'last_page'    => 1,
                'path'         => URL::current(),
                'per_page'     => $limit,
                'to'           => null,
                'total'        => 0,
            ],
            'data'  => []
        ];

        if ($currentPage > $totalPage) $currentPage = $totalPage;
        if ($currentPage < 1) $currentPage = 1;

        $prev_page_url = null;
        $next_page_url = null;

        $last_page_url = URL::current() . '?page=' . $totalPage;
        if ($currentPage > 1) {
            $prev_page_url = URL::current() . '?page=' . ($currentPage - 1);
        }
        if (($currentPage + 1) <= $totalPage) {
            $next_page_url = URL::current() . '?page=' . ($currentPage + 1);
        }

        $offset = ($currentPage - 1) * $limit;
        $data = $query->orderByRaw("id asc LIMIT " . $offset . ", " . $limit . " option max_matches=10000")->get();

        return [
            'links' => [
                'first' => $first_page_url,
                'last'  => $last_page_url,
                'next'  => $next_page_url,
                'prev'  => $prev_page_url,
            ],
            'meta'  => [
                'current_page' => $currentPage,
                'from'         => $offset + 1,
                'last_page'    => $totalPage,
                'path'         => URL::current(),
                'per_page'     => $limit,
                'to'           => $offset + $limit,
                'total'        => $total,
            ],
            'data'  => $data->toArray(), //Ex: ShopIndexResource::collection($data),
        ];
    }
}
