<?php

namespace App\Livewire\Forms;

use Livewire\Attributes\Validate;
use Livewire\Form;
use App\Models\User;

class UserForm extends Form
{
    public string $name = '';
    public string $email = '';
    public string $password = '';
    public string $password_confirm = '';
    public string $permissions = '';


    public function editUser(User $user)
    {
        $data = $user->toArray();

        $data['permissions'] = $data['permissions'][0];

        $this->fill($data);
    }

    protected $rules = [
        'name' => 'required|string|max:255',
        'email' => 'required|email',
        'password' => 'string|min:8',
        'password_confirm' => 'string|same:password',
        'permissions' => 'required|string|in:user,admin'
    ];

    protected $messages = [
        'name' => 'Nome precisa ser informado.',
        'email' => 'O email precisa ser informado.',
        'password' => 'A senha precisa ter 8 ou mais caracteres.',
        'password_confirm' => 'As senhas não coincidem.',
        'permissions' => 'Escolha o nível de autorização do usuário.'
    ];
}
