<?php
namespace {{ handlersNamespace }};

use Illuminate\Http\Request;
use Rupadana\ApiService\Http\Handlers;
use {{ resource }};
use {{ resource }}\Api\Requests\Update{{ model }}Request;

class UpdateHandler extends Handlers {
    public static string | null $uri = '/{id}';
    public static string | null $resource = {{ resourceClass }}::class;

    public static function getMethod()
    {
        return Handlers::PUT;
    }

    public static function getModel() {
        return static::$resource::getModel();
    }


    /**
     * Update {{ model }}
     *
     * @param Update{{ model }}Request $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function handler(Update{{ model }}Request $request)
    {
        $id = $request->route('id');

        $model = static::getModel()::find($id);

        if (!$model) return static::sendNotFoundResponse();

        $model->fill($request->all());

        $model->save();

        return static::sendSuccessResponse($model, "Successfully Update Resource");
    }
}