allowedFields = [ ...$this->allowedFields, 'first_name', // Añadido 'last_name', // Añadido 'cliente_id', // Añadido 'comments', // Añadido ]; } protected $returnType = UsersEntity::class; protected $useSoftDeletes = true; protected $useTimestamps = true; protected $createdField = 'created_at'; protected $updatedField = 'updated_at'; protected $deletedField = 'deleted_at'; protected $validationRules = [ "first_name" => "required|trim|max_length[150]", "last_name" => "required|trim|max_length[150]", 'new_pwd' => 'permit_empty|min_length[8]', 'new_pwd_confirm' => 'permit_empty|required_with[new_pwd]|matches[new_pwd]', "comments" => "permit_empty|trim|max_length[512]" ]; protected $validationMessages = [ 'first_name' => [ "max_length" => "Users.validation.first_name.max_length", "required" => "Users.validation.first_name.required" ], 'last_name' => [ "max_length" => "Users.validation.last_name.max_length", "required" => "Users.validation.last_name.required" ], 'new_pwd' => [ 'min_length' => "App.profile_rules_password_m" ], 'new_pwd_confirm' => [ 'matches' => "App.profile_rules_password_confirm_m" ], 'comments' => [ "max_length" => "Users.validation.last_name.max_length", ], ]; public function getComerciales() { $builder = $this->db ->table("users" . " t1") ->select( "t1.id AS id, CONCAT(t1.first_name, ' ', t1.last_name) AS name" ); $builder->where('t1.deleted_at', null); $builder->where("t2.group", "comercial"); $builder->join("auth_groups_users t2", "t1.id = t2.user_id", "left"); return $builder->get()->getResult(); } // Método para comprobar si el email ya está registrado public function isEmailUnique($email) { $builder = $this->db ->table("auth_identities t1") // La tabla correcta ->select("t1.secret AS email") ->where('secret', $email); // Obtener resultados $result = $builder->get()->getRow(); // Devuelve true si no se encuentra el correo (es único), false en caso contrario return $result === null; } }