25 lines
530 B
Elixir
25 lines
530 B
Elixir
defmodule Postland.Activity do
|
|
use Ecto.Schema
|
|
|
|
import Ecto.Changeset
|
|
|
|
@primary_key {:id, :binary_id, autogenerate: false}
|
|
schema "activities" do
|
|
field :actor_id, :string
|
|
field :type, :string
|
|
field :data, :map
|
|
end
|
|
|
|
def changeset(attrs) do
|
|
attrs = %{
|
|
"actor_id" => Map.get(attrs, "actor"),
|
|
"type" => Map.get(attrs, "type"),
|
|
"data" => attrs
|
|
}
|
|
|
|
%__MODULE__{}
|
|
|> cast(attrs, [:actor_id, :type, :data])
|
|
|> validate_required(:data)
|
|
|> validate_required(:type)
|
|
end
|
|
end
|