<?php

namespace App\Http\Controllers\Api;

use App\Models\News;
use App\Models\Notification;
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 NotificationController extends BaseController
{

    // 创建
    public function create(Request $request) {
        $data = Notification::create([
            'content' => $request->input('content'),
            'valid_start_date' => $request->input('valid_start_date'),
            'valid_end_date' => $request->input('valid_end_date')
        ]);

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

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

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

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

        if(!empty($request->input('content'))) $model->content =$request->input('content');
        if(!empty($request->input('valid_start_date'))) $model->valid_start_date =$request->input('valid_start_date');
        if(!empty($request->input('valid_end_date'))) $model->valid_end_date =$request->input('valid_end_date');

        $model->save();

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

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

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

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

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

