Packages
Elixir implementation of the NLdoc Spec for events from conversion of documents.
Current section
Files
Jump to
Current section
Files
lib/nldoc/spec/event/queued.ex
defmodule NLdoc.Spec.Event.Queued do
@moduledoc """
This module defines the Ecto schema for the NLdoc Event 'queued'.
"""
use NLdoc.SpecDef.Schema, type: "https://event.spec.nldoc.nl/queued"
defmodule Context do
@moduledoc false
use NLdoc.SpecDef.Schema, type: nil
@type t() :: %__MODULE__{}
embedded_schema do
end
def changeset(object, attrs) do
object
|> cast(attrs, [], @cast_opts)
end
end
typed_embedded_schema null: false do
field :type, :string, default: @resource_type
field :timestamp, :utc_datetime
field :trace_id, :string
embeds_one :context, Context
end
def changeset(object, attrs) do
fields = [:type, :timestamp, :trace_id]
object
|> cast(attrs, fields, @cast_opts)
|> cast_embed(:context)
|> validate_required([:context] ++ fields)
|> validate_inclusion(:type, [@resource_type])
end
end