defmodule Remedy.Schema.TypingStart do
use Remedy.Schema
@moduledoc """
Typing Start Event Dispatch
"""
@type t :: %__MODULE__{
channel_id: Snowflake.t(),
guild_id: Snowflake.t(),
user_id: Snowflake.t(),
timestamp: ISO8601.t(),
member: Member.t()
}
@primary_key false
embedded_schema do
field :channel_id, Snowflake
field :guild_id, Snowflake
field :user_id, Snowflake
field :timestamp, ISO8601
embeds_one :member, Member
end
@doc false
def form(attrs), do: changeset(attrs) |> apply_changes()
@doc false
def changeset(model \\ %__MODULE__{}, attrs) do
model
|> cast(attrs, [:channel_id, :guild_id, :user_id, :timestamp])
|> validate_required([:channel_id, :user_id, :timestamp])
|> cast_embed(:member)
end
end