+ def changeset(%ActivityExpiration{} = expiration, attrs) do
+ expiration
+ |> cast(attrs, [:scheduled_at])
+ |> validate_required([:scheduled_at])
+ |> validate_scheduled_at()
+ end
+
+ def get_by_activity_id(activity_id) do
+ ActivityExpiration
+ |> where([exp], exp.activity_id == ^activity_id)
+ |> Repo.one()
+ end
+
+ def create(%Activity{} = activity, scheduled_at) do
+ %ActivityExpiration{activity_id: activity.id}
+ |> changeset(%{scheduled_at: scheduled_at})
+ |> Repo.insert()
+ end
+