Some checks are pending
Build and Publish / build-release (push) Waiting to run
66 lines
1.2 KiB
Elixir
66 lines
1.2 KiB
Elixir
defmodule PolicyService.Commands.Policy do
|
|
@moduledoc """
|
|
Base templates for Policy commands.
|
|
Use these macros to ensure all policy types share the same structure.
|
|
"""
|
|
|
|
defmodule SubmitPolicyApplication do
|
|
defmacro __using__(_opts) do
|
|
quote do
|
|
defstruct [
|
|
:id,
|
|
:submitted_by,
|
|
:applicant_info,
|
|
:policy_details,
|
|
:selected_providers
|
|
]
|
|
end
|
|
end
|
|
end
|
|
|
|
defmodule RecordProviderQuote do
|
|
defmacro __using__(_opts) do
|
|
quote do
|
|
defstruct [
|
|
:id,
|
|
:recorded_by,
|
|
:provider_id,
|
|
:quote_id,
|
|
:premium,
|
|
:coverage_details,
|
|
:valid_until,
|
|
:plans
|
|
]
|
|
end
|
|
end
|
|
end
|
|
|
|
defmodule AcceptQuoteAndSolicit do
|
|
defmacro __using__(_opts) do
|
|
quote do
|
|
defstruct [
|
|
:id,
|
|
:accepted_by,
|
|
:quote_id,
|
|
:plan_id,
|
|
:solicitation_fields
|
|
]
|
|
end
|
|
end
|
|
end
|
|
|
|
defmodule RecordPolicyIssued do
|
|
defmacro __using__(_opts) do
|
|
quote do
|
|
defstruct [
|
|
:id,
|
|
:policy_number,
|
|
:effective_date,
|
|
:expiry_date,
|
|
:issued_at
|
|
]
|
|
end
|
|
end
|
|
end
|
|
end
|