commit 3d51431504b2dcffca2c0471b7ec623065ddce6b
parent 8b46238bfaf129c4ffc68848a035908addacf7b9
Author: srfsh <dev@srf.sh>
Date: Wed, 17 Aug 2022 11:36:14 +0300
Zenflows.InstVars: convert unitCurrency into specCurrency
It was a brainfart sitation; now it's fixed.
Diffstat:
5 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/priv/repo/migrations/20220816154732_create_and_fill_zf_inst_vars.exs b/priv/repo/migrations/20220816154732_create_and_fill_zf_inst_vars.exs
@@ -25,7 +25,7 @@ def up() do
create table("zf_inst_vars", primary_key: false) do
add :one_row, :boolean, default: true, primary_key: true
add :unit_one_id, references("vf_unit"), null: false
- add :unit_currency_id, references("vf_unit"), null: false
+ add :spec_currency_id, references("vf_resource_specification"), null: false
add :spec_project_design_id, references("vf_resource_specification"), null: false
add :spec_project_service_id, references("vf_resource_specification"), null: false
add :spec_project_product_id, references("vf_resource_specification"), null: false
@@ -38,14 +38,14 @@ def up() do
execute(fn ->
r = repo()
{:ok, unit_one} = Unit.Domain.create(r, %{label: "one", symbol: "#"})
- {:ok, unit_currency} = Unit.Domain.create(r, %{label: "currency", symbol: "$"})
+ {:ok, spec_currency} = ResourceSpecification.Domain.create(r, %{name: "currency", default_unit_of_resource_id: unit_one.id})
{:ok, spec_design} = ResourceSpecification.Domain.create(r, %{name: "Design", default_unit_of_resource_id: unit_one.id})
{:ok, spec_service} = ResourceSpecification.Domain.create(r, %{name: "Service", default_unit_of_resource_id: unit_one.id})
{:ok, spec_product} = ResourceSpecification.Domain.create(r, %{name: "Product", default_unit_of_resource_id: unit_one.id})
r.insert!(%InstVars{
unit_one_id: unit_one.id,
- unit_currency_id: unit_currency.id,
+ spec_currency_id: spec_currency.id,
spec_project_design_id: spec_design.id,
spec_project_service_id: spec_service.id,
spec_project_product_id: spec_product.id,
diff --git a/src/zenflows/inst_vars.ex b/src/zenflows/inst_vars.ex
@@ -26,7 +26,7 @@ alias Zenflows.VF.{Unit, ResourceSpecification}
@type t() :: %__MODULE__{
unit_one: Unit,
- unit_currency: Unit,
+ spec_currency: ResourceSpecification,
spec_project_design: ResourceSpecification,
spec_project_service: ResourceSpecification,
spec_project_product: ResourceSpecification,
@@ -36,7 +36,7 @@ alias Zenflows.VF.{Unit, ResourceSpecification}
@foreign_key_type Zenflows.DB.ID
schema "zf_inst_vars" do
belongs_to :unit_one, Unit
- belongs_to :unit_currency, Unit
+ belongs_to :spec_currency, ResourceSpecification
belongs_to :spec_project_design, ResourceSpecification
belongs_to :spec_project_service, ResourceSpecification
belongs_to :spec_project_product, ResourceSpecification
diff --git a/src/zenflows/inst_vars/domain.ex b/src/zenflows/inst_vars/domain.ex
@@ -25,13 +25,13 @@ alias Zenflows.VF.{Unit, ResourceSpecification}
@doc false
def start_link(_) do
- [vars] = Repo.all(InstVars)
+ [vars] = Repo.all(InstVars, timeout: :infinity)
Agent.start_link(fn -> %{
units: %{
unit_one: %{id: vars.unit_one_id},
- unit_currency: %{id: vars.unit_currency_id},
},
specs: %{
+ spec_currency: %{id: vars.spec_currency_id},
spec_project_design: %{id: vars.spec_project_design_id},
spec_project_service: %{id: vars.spec_project_service_id},
spec_project_product: %{id: vars.spec_project_product_id},
diff --git a/src/zenflows/inst_vars/resolv.ex b/src/zenflows/inst_vars/resolv.ex
@@ -29,8 +29,8 @@ def unit_one(%{unit_one: %{id: id}}, _, _) do
Unit.Domain.one(id)
end
-def unit_currency(%{unit_currency: %{id: id}}, _, _) do
- Unit.Domain.one(id)
+def spec_currency(%{spec_currency: %{id: id}}, _, _) do
+ ResourceSpecification.Domain.one(id)
end
def spec_project_design(%{spec_project_design: %{id: id}}, _, _) do
diff --git a/src/zenflows/inst_vars/type.ex b/src/zenflows/inst_vars/type.ex
@@ -24,14 +24,18 @@ alias Zenflows.InstVars.Resolv
object :instance_units do
field :unit_one, non_null(:unit), resolve: &Resolv.unit_one/3
- field :unit_currency, non_null(:unit), resolve: &Resolv.unit_currency/3
end
object :instance_specs do
+ field :spec_currency, non_null(:resource_specification),
+ resolve: &Resolv.spec_currency/3
+
field :spec_project_design, non_null(:resource_specification),
resolve: &Resolv.spec_project_design/3
+
field :spec_project_service, non_null(:resource_specification),
resolve: &Resolv.spec_project_service/3
+
field :spec_project_product, non_null(:resource_specification),
resolve: &Resolv.spec_project_product/3
end