<?php

namespace App\Http\Controllers\Api\v1;

use App\Models\Blog;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class BlogController extends BaseController
{
    //
    /**
     * @api {get} /list Lấy blog
     * @apiName list
     * @apiGroup blog
     *  * @apiParam {String} limit
     * @apiParam {String} offset
     * @apiDescription Lấy blog
     *
     * @apiSuccess {Number} status 1 hoặc 0. 1 là thành công, 0 là không thành công.
     * @apiSuccess {String} message  Tin nhắn hệ thống.
     * @apiSuccess {String} data
     */
    public function getBlogs(Request $request)
    {
        $limit = $request->input('limit', 10);
        $offset = $request->input('offset', 0);
        $items = Blog::publish()->select(\DB::raw('blogs.*'))
            ->join('blog_categories', 'blogs.id', '=', 'blog_categories.blog_id')
            ->where('blog_categories.category_id','<>',  47)
            ->orderBy('blogs.id', 'desc')
            ->limit($limit)
            ->offset($offset)
            ->get()
            ->map(function($item) {
               $arr = $item->toArray();
               $arr['image'] = '/files/'.$item->image;
               return $arr;
            });
        return response([
            'status' => 1,
            'data' => $items
        ]);
    }

    /**
     * @api {get} /discount Lấy blog discount
     * @apiName discount
     * @apiGroup blog
     *  * @apiParam {String} limit
     * @apiParam {String} offset
     * @apiDescription Lấy blog discount
     *
     * @apiSuccess {Number} status 1 hoặc 0. 1 là thành công, 0 là không thành công.
     * @apiSuccess {String} message  Tin nhắn hệ thống.
     * @apiSuccess {String} data
     */
    public function getBlogsDiscount(Request $request)
    {
        $limit = $request->input('limit', 10);
        $offset = $request->input('offset', 0);
        $items = Blog::publish()->select(\DB::raw('blogs.*'))
            ->join('blog_categories', 'blogs.id', '=', 'blog_categories.blog_id')
            ->where('blog_categories.category_id','=',  47)
            ->orderBy('blogs.id', 'desc')
            ->where('end_date', '>=', Carbon::now())
            ->limit($limit)
            ->offset($offset)
            ->get()
            ->map(function($item) {
                $arr = $item->toArray();
                $arr['image'] = '/files/'.$item->image;
                return $arr;
            });
        return response([
            'status' => 1,
            'data' => $items
        ]);
    }
}
