<?php

namespace App\Http\Controllers;

use App\Article;
use App\Http\Resources\ArticleResource;
use App\Http\Resources\CareResource;
use App\Care;
use App\Laravue\Models\User;
use Illuminate\Support\Arr;
use Illuminate\Http\Request;

class CareController extends Controller
{
    const ITEM_PER_PAGE = 10;

    public function index(Request $request)
    {
        $params = $request->all();
        $limit = Arr::get($params, 'limit', static::ITEM_PER_PAGE);
        $list = User::whereHas('roles', function ($q) {
            $q->where('name', 'nursingstaff');
        })->orderBy('id', 'DESC');

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

    public function show($slug = '')
    {
        $item = User::whereHas('roles', function ($q) {
                $q->where('name', 'nursingstaff');
            })
            ->where('slug', $slug)
            ->first();

        return new CareResource($item);
    }

    public function relate(Request $request)
    {
        $params = $request->all();
        $limit = Arr::get($params, 'limit', static::ITEM_PER_PAGE);
        $slug = Arr::get($params, 'slug', '');

        $author = User::whereHas('roles', function ($q) {
            $q->where('name', 'nursingstaff');
        })->where('slug', $slug)
            ->first();

        $list = Article::select('id', 'title', 'slug', 'thumbnail', 'publish_at', 'description')
            ->where('is_deleted', false)
            ->where('is_activated', true)
            ->where('type', 'question')
            ->where('user_id', $author->id)
            ->orderBy('updated_at', 'DESC');

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