zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

domain.ex (1605B)


      1 # Zenflows is designed to implement the Valueflows vocabulary,
      2 # written and maintained by srfsh <info@dyne.org>.
      3 # Copyright (C) 2021-2023 Dyne.org foundation <foundation@dyne.org>.
      4 #
      5 # This program is free software: you can redistribute it and/or modify
      6 # it under the terms of the GNU Affero General Public License as published by
      7 # the Free Software Foundation, either version 3 of the License, or
      8 # (at your option) any later version.
      9 #
     10 # This program is distributed in the hope that it will be useful,
     11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 # GNU Affero General Public License for more details.
     14 #
     15 # You should have received a copy of the GNU Affero General Public License
     16 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
     17 
     18 defmodule Zenflows.InstVars.Domain do
     19 @moduledoc "Domain logict of instance-level, global variables."
     20 
     21 use Agent
     22 
     23 alias Zenflows.{DB.Repo, InstVars}
     24 alias Zenflows.VF.{ResourceSpecification, Unit}
     25 
     26 @doc false
     27 def start_link(_) do
     28 	[vars] = Repo.all(InstVars, timeout: :infinity)
     29 	Agent.start_link(fn -> %{
     30 		units: %{
     31 			unit_one: %{id: vars.unit_one_id},
     32 		},
     33 		specs: %{
     34 			spec_currency: %{id: vars.spec_currency_id},
     35 			spec_project_design: %{id: vars.spec_project_design_id},
     36 			spec_project_service: %{id: vars.spec_project_service_id},
     37 			spec_project_product: %{id: vars.spec_project_product_id},
     38 		},
     39 	} end, name: __MODULE__)
     40 end
     41 
     42 @spec get() :: %{units: [Unit.t()], specs: [ResourceSpecification.t()]}
     43 def get() do
     44 	Agent.get(__MODULE__, & &1)
     45 end
     46 end