Current section

Files

Jump to
arke lib arke core project.ex
Raw

lib/arke/core/project.ex

defmodule Arke.Core.Project do
@moduledoc """
Define a Project structure where more Arke will be grouped
{arke_struct} = Project
"""
use Arke.System
@persistence Application.get_env(:arke, :persistence)
arke id: :arke_project, label: "Arke Project" do
parameter :label, :string, required: true
parameter :description, :string, required: false
parameter :persistence, :dict, required: true, values: nil, default_dict: %{}
parameter :type, :string, required: true, default_string: :postgres_schema
end
def on_create(unit) do
persistence_fn = @persistence[:arke_postgres][:create_project]
unit |> persistence_fn.()
{:ok, unit}
end
def on_delete(unit) do
persistence_fn = @persistence[:arke_postgres][:delete_project]
unit |> persistence_fn.()
{:ok, nil}
end
end