Jido.Chat.Incoming (Jido Chat v1.0.0)

Copy Markdown View Source

Canonical normalized inbound message/event payload.

Summary

Functions

Builds an incoming payload from serialized map data.

Creates a normalized incoming payload.

Returns the Zoi schema for Incoming.

Serializes the incoming payload into a plain map with a type marker.

Types

t()

@type t() :: %Jido.Chat.Incoming{
  author:
    nil
    | nil
    | %Jido.Chat.Author{
        full_name: term(),
        is_bot: term(),
        is_me: term(),
        metadata: term(),
        user_id: term(),
        user_name: term()
      },
  channel_meta: %Jido.Chat.ChannelMeta{
    adapter_name: term(),
    chat_title: term(),
    chat_type: term(),
    delivery_external_room_id: term(),
    external_room_id: term(),
    external_thread_id: term(),
    is_dm: term(),
    metadata: term()
  },
  chat_title: nil | nil | binary(),
  chat_type: nil | nil | atom(),
  delivery_external_room_id: nil | nil | binary(),
  display_name: nil | nil | binary(),
  external_message_id: nil | nil | any(),
  external_reply_to_id: nil | nil | any(),
  external_room_id: any(),
  external_thread_id: nil | nil | binary(),
  external_user_id: nil | nil | any(),
  media: [
    %Jido.Chat.Media{
      duration: term(),
      filename: term(),
      height: term(),
      kind: term(),
      media_type: term(),
      metadata: term(),
      size_bytes: term(),
      url: term(),
      width: term()
    }
  ],
  mentions: [
    %Jido.Chat.Mention{
      display_name: term(),
      is_self: term(),
      mention_text: term(),
      metadata: term(),
      user_id: term(),
      username: term()
    }
  ],
  metadata: map(),
  raw: map(),
  text: nil | nil | binary(),
  timestamp: nil | nil | any(),
  username: nil | nil | binary(),
  was_mentioned: boolean()
}

Functions

from_map(map)

@spec from_map(map()) :: t()

Builds an incoming payload from serialized map data.

new(attrs)

Creates a normalized incoming payload.

schema()

Returns the Zoi schema for Incoming.

to_map(incoming)

@spec to_map(t()) :: map()

Serializes the incoming payload into a plain map with a type marker.