# `BaileysEx.Feature.Profile`
[🔗](https://github.com/jeffhuen/baileys_ex/blob/main/lib/baileys_ex/feature/profile.ex#L1)

Profile management functions aligned with Baileys `chats.ts`.

# `picture_type`

```elixir
@type picture_type() :: :preview | :image
```

# `fetch_status`

```elixir
@spec fetch_status(term(), [String.t()], keyword()) ::
  {:ok, [map()]} | {:error, term()}
```

Fetch profile status text for one or more JIDs via USync.

# `get_business_profile`

```elixir
@spec get_business_profile(term(), String.t(), keyword()) ::
  {:ok, map() | nil} | {:error, term()}
```

Fetch the business profile for a given JID.

# `picture_url`

```elixir
@spec picture_url(term(), String.t(), picture_type(), keyword()) ::
  {:ok, String.t() | nil} | {:error, term()}
```

Fetch the profile-picture URL for a user or group.

# `remove_picture`

```elixir
@spec remove_picture(term(), String.t(), keyword()) ::
  {:ok, BaileysEx.BinaryNode.t()} | {:error, term()}
```

Remove the profile picture for yourself or a group.

# `update_name`

```elixir
@spec update_name(term(), String.t()) :: {:ok, map()} | {:error, term()}
```

Update the display name via the Baileys `pushNameSetting` app-state patch.

# `update_picture`

```elixir
@spec update_picture(term(), String.t(), term(), map() | nil, keyword()) ::
  {:ok, BaileysEx.BinaryNode.t()} | {:error, term()}
```

Update the profile picture for yourself or a group.

Mirrors Baileys `updateProfilePicture`. The image bytes are obtained from
`opts[:picture_generator]` when supplied. Without a generator, the function
returns an explicit dependency error rather than silently inventing a local
transform.

# `update_status`

```elixir
@spec update_status(term(), String.t(), keyword()) ::
  {:ok, BaileysEx.BinaryNode.t()} | {:error, term()}
```

Update the profile status text for the current account.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
