<?php

namespace App\Http\Controllers\Api;

use App\Models\Banner;
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 BannerController extends BaseController
{
    // 创建
    public function create(Request $request) {
        $data = Banner::create([
            'image' => $request->input('image'),
            'link' => $request->input('link'),
            'height' => $request->input('height'),
            'width' => $request->input('width')
        ]);

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

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

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

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

        if(!empty($request->input('image'))) $model->image =$request->input('image');
        if(!empty($request->input('link'))) $model->link =$request->input('link');
        if(!empty($request->input('height'))) $model->height =$request->input('height');
        if(!empty($request->input('width'))) $model->width =$request->input('width');
        $model->save();

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

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

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

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

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

