defmodule WorkloadService.Commands.QuoteTask do @moduledoc """ Quote task commands. """ defmodule CreateTask do @moduledoc """ Command to create a new quote task. """ @derive Jason.Encoder defstruct [:id, :application_id, :provider_id, :provider_name, :task_info, :attachments] def new(attrs) do struct(__MODULE__, attrs) end end defmodule SubmitResponse do @moduledoc """ Command to submit response for a quote task. """ @derive Jason.Encoder defstruct [:id, :submission, :attachments] def new(attrs) do struct(__MODULE__, attrs) end end defmodule ApproveSubmission do @moduledoc """ Command to approve submission for a quote task. """ @derive Jason.Encoder defstruct [:id] def new(attrs) do struct(__MODULE__, attrs) end end defmodule CompleteTask do @moduledoc """ Command to complete a quote task. """ @derive Jason.Encoder defstruct [:id, :completed_by] def new(attrs) do struct(__MODULE__, attrs) end end end