An example AT Protocol application, written in Elixir using atex and Drinkup.
1defmodule Statusphere.Status do
2 use Ecto.Schema
3 import Ecto.Changeset
4
5 @primary_key {:uri, :binary_id, autogenerate: false}
6 @foreign_key_type :binary_id
7 schema "status" do
8 field :author_did, :string
9 field :status, :string
10 field :created_at, :utc_datetime
11 field :indexed_at, :utc_datetime
12 end
13
14 @doc false
15 def changeset(status, attrs) do
16 status
17 |> cast(attrs, [:uri, :author_did, :status, :created_at, :indexed_at])
18 |> validate_required([:uri, :author_did, :status, :created_at, :indexed_at])
19 |> unique_constraint(:uri)
20 end
21end