<?php

namespace App\Http\Controllers\Api;

use App\Models\News;
use Exception;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

class NewsController extends BaseController
{

    // 创建
    public function create(Request $request) {
        $data = News::create([
            'title' => $request->input('title'),
            'description' => $request->input('description'),
            'image' => $request->input('image')
        ]);

        return $this->response($data);
    }

    public function getNews(Request $request) {
        $data = News::findOrFail($request->input('id'));
        return $this->response($data);
    }

    public function getActiveNewsList(Request $request) {
        $per_page = $request->input('per_page') ?: 10;
        $data = News::query()->where('status', 1)->orderBy('id','desc')->paginate($per_page);
        return $this->response($data);
    }



    // 列表
    public function list(Request $request) {
        $per_page = $request->input('per_page') ?: 10;
        $data = News::query()->orderBy('id','desc')->paginate($per_page);
        return $this->response($data);
    }

    // 更新
    public function update(Request $request) {
        $model = News::findOrFail($request->input('id'));

        if(!empty($request->input('title'))) $model->title =$request->input('title');
        if(!empty($request->input('description'))) $model->description =$request->input('description');
        if(!empty($request->input('image'))) $model->image =$request->input('image');

        $model->save();

        return $this->response($model);
    }

    // 禁用启用
    public function showHide(Request $request) {
        $model = News::findOrFail($request->input('id'));

        $model->status = !$model->status;
        $model->save();

        return $this->response($model);
    }

    // 删除
    public function delete(Request $request) {
        $model = News::findOrFail($request->input('id'));
        $model->delete();
        return $this->response($model);
    }
}

