defmodule WorkloadService.Commands.SolicitationTask do @moduledoc """ Solicitation task commands. """ defmodule CreateTask do @moduledoc """ Command to create a new solicitation 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 solicitation 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 solicitation task. """ @derive Jason.Encoder defstruct [:id] def new(attrs) do struct(__MODULE__, attrs) end end defmodule CompleteTask do @moduledoc """ Command to complete a solicitation task. """ @derive Jason.Encoder defstruct [:id, :completed_by] def new(attrs) do struct(__MODULE__, attrs) end end end