Files
workload-service/lib/workload_service/commands/quote_task.ex
HaimKortovich c81b1673d4
Some checks failed
Build and Publish / build-release (push) Has been cancelled
add auth
2026-05-15 10:19:57 -05:00

73 lines
1.7 KiB
Elixir

defmodule WorkloadService.Commands.QuoteTask do
@moduledoc """
Quote task commands.
"""
defmodule CreateTask do
@moduledoc """
Command to create a new quote task.
"""
@type t :: %__MODULE__{
id: WorkloadService.Aggregates.TaskId.t(),
application_id: WorkloadService.Aggregates.ApplicationId.t(),
task_info: map(),
attachments: [String.t()]
}
@derive Jason.Encoder
defstruct [:id, :application_id, :task_info, :attachments]
end
defmodule SubmitResponse do
@moduledoc """
Command to submit response for a quote task.
"""
@type t :: %__MODULE__{
id: WorkloadService.Aggregates.TaskId.t(),
submission: map(),
attachments: [String.t()]
}
@derive Jason.Encoder
defstruct [:id, :submission, :attachments]
end
defmodule ApproveSubmission do
@moduledoc """
Command to approve submission for a quote task.
"""
@type t :: %__MODULE__{
id: WorkloadService.Aggregates.TaskId.t()
}
@derive Jason.Encoder
defstruct [:id]
end
defmodule RequestApproval do
@moduledoc """
Command to request approval for a quote task.
Moves task from 'draft' to 'approval_requested'.
"""
@type t :: %__MODULE__{
id: WorkloadService.Aggregates.TaskId.t()
}
@derive Jason.Encoder
defstruct [:id]
end
defmodule CompleteTask do
@moduledoc """
Command to complete a quote task.
"""
@type t :: %__MODULE__{
id: WorkloadService.Aggregates.TaskId.t(),
completed_by: String.t()
}
@derive Jason.Encoder
defstruct [:id, :completed_by]
end
end