<?php

namespace App\Http\Livewire\Auth;

use App\Models\User;
use Livewire\Component;
use App\Services\MecubroService;
use Illuminate\Support\Facades\Auth;

class Login extends Component
{

    public $email;
    public $password;
    public $remember_me = false;

    protected $rules = [
        'email' => 'required|email:rfc,dns',
        'password' => 'required|min:6',
    ];

    public function mount()
    {
        if (session('usr_name')) {
            return redirect()->intended('/dashboard');
        }
        $this->fill([
            'email' => '@mecubro.com',
            'password' => '',
        ]);
    }

    public function login()
    {
        $credentials = $this->validate();
        $mecubroService = new MecubroService;

        $tk=$mecubroService->login($credentials);
        if ($tk){

            $user = new User();
            $user->username = 'admin';
            $user->password = 'dfdsg3543fdGFG35fg#';            // Este usuario no existe - se crea un modelo user para iniciar sesion. Los datos importantes quedan en session
            $user->email = 'admin@mecubro.com';

            $user->id = 5;
            $user->name = "Me Cubro";

            $user->email_verified_at = null;
            $user->two_factor_secret = null;
            $user->two_factor_recovery_codes = null;
            $user->two_factor_confirmed_at = null;
            $user->remember_token = null;
            $user->current_team_id = null;
            $user->profile_photo_path = null;

            //try {
               // auth()->login($user, $this->remember_me);
            //} catch (Throwable $e) {
            //    return false;
            //}

            $info=$mecubroService->userInfo()['info']->data;
            session(['usr_tk' => $tk]);
            session(['usr_id' => $info->id]);
            session(['usr_phone' => $info->phone]);
            session(['usr_email' => $info->email]);
            session(['usr_name' => $info->name]);
            session(['usr_avatar' => $info->avatar]);

            return redirect()->intended('/dashboard');

        } else {
            return $this->addError('email', trans('auth.failed'));
        }
    }

    public function render()
    {
        return view('livewire.auth.login');
    }
}
