# `Jido.Chat.ModalSubmitEvent`
[🔗](https://github.com/agentjido/jido_chat/blob/v1.0.0/lib/jido/chat/modal_submit_event.ex#L1)

Normalized modal submit event payload placeholder for Phase 2.

# `t`

```elixir
@type t() :: %Jido.Chat.ModalSubmitEvent{
  adapter: nil | nil | any(),
  adapter_name: nil | nil | atom(),
  callback_id: nil | nil | binary(),
  channel:
    nil
    | nil
    | %Jido.Chat.ChannelRef{
        adapter: term(),
        adapter_name: term(),
        external_id: term(),
        id: term(),
        metadata: term()
      },
  channel_id: nil | nil | binary(),
  message:
    nil
    | nil
    | %Jido.Chat.Message{
        attachments: term(),
        author: term(),
        channel_id: term(),
        created_at: term(),
        external_message_id: term(),
        external_room_id: term(),
        formatted: term(),
        id: term(),
        is_mention: term(),
        metadata: term(),
        raw: term(),
        text: term(),
        thread_id: term(),
        updated_at: term()
      },
  message_id: nil | nil | binary(),
  metadata: map(),
  private_metadata: nil | nil | binary(),
  raw: map(),
  related_channel:
    nil
    | nil
    | %Jido.Chat.ChannelRef{
        adapter: term(),
        adapter_name: term(),
        external_id: term(),
        id: term(),
        metadata: term()
      },
  related_message:
    nil
    | nil
    | %Jido.Chat.Message{
        attachments: term(),
        author: term(),
        channel_id: term(),
        created_at: term(),
        external_message_id: term(),
        external_room_id: term(),
        formatted: term(),
        id: term(),
        is_mention: term(),
        metadata: term(),
        raw: term(),
        text: term(),
        thread_id: term(),
        updated_at: term()
      },
  related_thread:
    nil
    | nil
    | %Jido.Chat.Thread{
        adapter: term(),
        adapter_name: term(),
        channel_id: term(),
        external_room_id: term(),
        external_thread_id: term(),
        id: term(),
        is_dm: term(),
        metadata: term()
      },
  thread:
    nil
    | nil
    | %Jido.Chat.Thread{
        adapter: term(),
        adapter_name: term(),
        channel_id: term(),
        external_room_id: term(),
        external_thread_id: term(),
        id: term(),
        is_dm: term(),
        metadata: term()
      },
  thread_id: nil | nil | binary(),
  trigger_id: nil | nil | binary(),
  user:
    nil
    | nil
    | %Jido.Chat.Author{
        full_name: term(),
        is_bot: term(),
        is_me: term(),
        metadata: term(),
        user_id: term(),
        user_name: term()
      },
  values: map(),
  view_id: nil | nil | binary()
}
```

# `close`

```elixir
@spec close(keyword() | map()) :: Jido.Chat.ModalResponse.t()
```

Builds a close response for modal handlers.

# `errors`

```elixir
@spec errors(map(), keyword() | map()) :: Jido.Chat.ModalResponse.t()
```

Builds a validation error response for modal handlers.

# `from_map`

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

Builds a modal submit event from serialized map data.

# `new`

Creates a normalized modal submit event payload.

# `push`

```elixir
@spec push(Jido.Chat.Modal.t() | map(), keyword() | map()) ::
  Jido.Chat.ModalResponse.t()
```

Builds a push response for modal handlers.

# `schema`

Returns the Zoi schema for ModalSubmitEvent.

# `to_map`

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

Serializes the modal submit event into a plain map with a type marker.

# `update`

```elixir
@spec update(Jido.Chat.Modal.t() | map(), keyword() | map()) ::
  Jido.Chat.ModalResponse.t()
```

Builds an update response for modal handlers.

---

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