defmodule Clacks.Activity do use Ecto.Schema import Ecto.Changeset @type t() :: %__MODULE__{} @primary_key {:id, FlakeId.Ecto.Type, autogenerate: true} schema "activities" do field :data, :map field :local, :boolean field :actor, :string field :recipients, {:array, :string}, default: [] has_one :object, Clacks.Object, on_delete: :nothing, foreign_key: :id timestamps() end def changeset(%__MODULE__{} = schema, attrs) do schema |> cast(attrs, [:data, :local, :actor, :recipients]) |> validate_required([:data, :local, :actor, :recipients]) end end