<?php

namespace Modules\Bitrix\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Foundation\Auth\RegistersUsers;
use Modules\Main\Models\Agent\Agent;
use Modules\Main\Models\Company\Company;
use Modules\Main\Models\Company\CompanyAdmin;
use Modules\User\Models\User;

class ConfirmCompanyController extends Controller
{
    use RegistersUsers;
    /**
     * Подтверждение статуса зарегистрированного агентства
     * @param \Illuminate\Http\Request $request
     * @param $request['token'] - токен - поле для идентификации компании
     * @param $reqest['status'] - new|accepted|declined
     * @return bool
     */
    public function __invoke(Request $request, Company $company)
    {
        $company->status = $request->status;
        $company->save();
        $user = User::where('email', $company->email);
        if ($user->count() == 1) {
            $user = $user->first();
        } else {
            $user = User::create([
                'name' => $request->user_name,
                'email' => $company->email,
                'phone' => $request->user_phone
            ]);
            $user->setForcedPassword();
        }
        CompanyAdmin::where('user_id', $user->id)->delete();//удаляю, если уже была админская учетка
        CompanyAdmin::create([
            'user_id' => $user->id,
            'company_id' => $company->id
        ]);
        Agent::where('user_id', $user->id)->delete();//удаляю, если уже была агентская учетка

        Agent::create([
            'user_id' => $user->id,
            'company_id' => $company->id
        ]);
        return true;
    }
}