<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use App\Http\Resources\ChargeResource;
use App\Charge;
use Validator;

class ChargeController extends Controller
{
    const ITEM_PER_PAGE = 20;

    public function index(Request $request)
    {
        $searchParams = $request->all();
        $limit = Arr::get($searchParams, 'limit', static::ITEM_PER_PAGE);
        $projectId = Arr::get($searchParams, 'project_id', '');
        $keyword = Arr::get($searchParams, 'keyword', '');

        $list = Charge::isPublished()->where('project_id', $projectId);

        if (!empty($keyword)) {
            $list->where('name', 'LIKE', '%' . $keyword . '%');
        }

        $list->orderBy('id');

        return ChargeResource::collection($list->paginate($limit));
    }
}
