<?php

namespace App\Services\Violation;

use App\Models\Media\MediaSecure;
use App\Models\User\UserModel;
use PocketBE\MsyPush\Jobs\RegistEventJob;

class Nickname extends ViolationAbstract
{

    public function handle()
    {
        $this->user = UserModel::findOrFail($this->media->uid);
        if ($this->user->nickname == $this->media->origin) {
            switch ($this->media->result) {
                case MediaSecure::MANUAL_SUGGESTION_BLOCK:
                    $this->handleFailed();
                    break;
                case MediaSecure::MANUAL_SUGGESTION_PASS:
                    $this->handleSuccess();
                    break;
            }
        }
    }


    public function handleFailed()
    {
        $this->user->nickname = '';
        $this->user->save();
        $this->notification();
    }

    /**
     * 通知
     */
    public function notification()
    {
        $payload = [
            'to_user' => $this->user->getAuth(),
            'user' => $this->user->toArray(),
            'meta' => [
                'field' => '昵称',
                'handle' => '已更改为默认昵称',
            ],
        ];
        dispatch(new RegistEventJob(100015, $payload))->onQueue("{push}");
    }

    public function handleSuccess()
    {
    }
}
