Current section
Files
Jump to
Current section
Files
lib/cyclium/schemas/trigger_request.ex
defmodule Cyclium.Schemas.TriggerRequest do
use Ecto.Schema
import Ecto.Changeset
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
@statuses [:pending, :claimed, :completed, :expired]
@type t :: %__MODULE__{}
schema "cyclium_trigger_requests" do
field(:episode_id, :binary_id)
field(:actor_id, :string)
field(:expectation_id, :string)
field(:source_node, :string)
field(:source_stack, :string)
field(:source_env, :string)
field(:status, Ecto.Enum, values: @statuses, default: :pending)
field(:opts, :map, default: %{})
field(:claimed_by, :string)
field(:claimed_at, :utc_datetime)
timestamps(type: :utc_datetime)
end
def changeset(request, attrs) do
request
|> cast(attrs, [
:episode_id,
:actor_id,
:expectation_id,
:source_node,
:source_stack,
:source_env,
:status,
:opts,
:claimed_by,
:claimed_at
])
|> validate_required([:episode_id, :actor_id, :expectation_id, :source_node, :status])
end
end