From ac114869be65227b0f3da0e6f989bc4d9f8de76b Mon Sep 17 00:00:00 2001 From: HaimKortovich Date: Fri, 15 May 2026 13:29:03 -0500 Subject: [PATCH] impl string.chars --- lib/customer_service/aggregates/customer_id.ex | 16 +++++++++------- lib/customer_service/aggregates/lead_id.ex | 12 +++++++++++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lib/customer_service/aggregates/customer_id.ex b/lib/customer_service/aggregates/customer_id.ex index 70d6512..a4b0b6a 100644 --- a/lib/customer_service/aggregates/customer_id.ex +++ b/lib/customer_service/aggregates/customer_id.ex @@ -4,7 +4,7 @@ defmodule CustomerService.Aggregates.CustomerId do customer_type: String.t(), customer_id: String.t() } - @derive {Jason.Encoder, only: [:org_id, :customer_type, :customer_id]} + @derive Jason.Encoder defstruct [:org_id, :customer_type, :customer_id] def new(org_id, customer_type, customer_id) @@ -30,12 +30,14 @@ defmodule CustomerService.Aggregates.CustomerId do {:error, :invalid_customer_id} end - def to_string(%__MODULE__{ - org_id: org_id, - customer_type: customer_type, - customer_id: customer_id - }) do - org_id <> ":" <> customer_type <> ":" <> customer_id + defimpl String.Chars do + def to_string(%CustomerService.Aggregates.LeadId{ + org_id: org_id, + customer_type: type, + customer_id: customer_id + }) do + org_id <> ":" <> type <> ":" <> customer_id + end end defimpl Commanded.Serialization.JsonDecoder do diff --git a/lib/customer_service/aggregates/lead_id.ex b/lib/customer_service/aggregates/lead_id.ex index 64160db..e3ebb0f 100644 --- a/lib/customer_service/aggregates/lead_id.ex +++ b/lib/customer_service/aggregates/lead_id.ex @@ -4,7 +4,7 @@ defmodule CustomerService.Aggregates.LeadId do type: String.t(), lead_id: String.t() } - @derive {Jason.Encoder, only: [:org_id, :type, :lead_id]} + @derive Jason.Encoder defstruct [:org_id, :type, :lead_id] def new(org_id, lead_id) when is_binary(org_id) and is_binary(lead_id) do @@ -36,4 +36,14 @@ defmodule CustomerService.Aggregates.LeadId do def decode(id), do: id end + + defimpl String.Chars do + def to_string(%CustomerService.Aggregates.LeadId{ + org_id: org_id, + type: type, + lead_id: lead_id + }) do + org_id <> ":" <> type <> ":" <> lead_id + end + end end