# `Jido.Messaging.RoomBinding`
[🔗](https://github.com/agentjido/jido_messaging/blob/v1.0.0/lib/jido_messaging/room_binding.ex#L1)

Represents a binding between an internal room and an external platform room.

Constraints:
- Unique: {channel, bridge_id, external_room_id} - one internal room per external bridge
- Non-unique: room_id - one internal room can have many external bindings

## Direction

The `:direction` field controls message flow:
- `:both` (default) - Messages flow in both directions
- `:inbound` - Only receive messages from external platform
- `:outbound` - Only send messages to external platform

# `direction`

```elixir
@type direction() :: :inbound | :outbound | :both
```

# `t`

```elixir
@type t() :: %Jido.Messaging.RoomBinding{
  bridge_id: binary(),
  channel: atom(),
  direction: atom(),
  enabled: boolean(),
  external_room_id: binary(),
  id: binary(),
  inserted_at: any(),
  room_id: binary()
}
```

# `new`

Create a new RoomBinding with auto-generated ID and timestamp.

# `schema`

Returns the Zoi schema

---

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