Files
music_library/lib/music_library/barcode_scan/result.ex
T
Claudio Ortolina 9e1dbfd530 Re-enable Credo ModuleDoc check
Closes #108
2026-03-13 10:52:01 +00:00

50 lines
1.1 KiB
Elixir

defmodule MusicLibrary.BarcodeScan.Result do
@moduledoc false
defstruct [:status, :number, :record_id, :release]
@type t :: %__MODULE__{
status: :new | :wishlisted | :collected | :not_found,
number: String.t(),
record_id: String.t() | nil,
release: map() | nil
}
@spec new(String.t(), map()) :: t()
def new(number, release) do
%__MODULE__{
number: number,
status: :new,
release: release
}
end
@spec wishlisted(String.t(), String.t(), map()) :: t()
def wishlisted(number, record_id, release) do
%__MODULE__{
number: number,
status: :wishlisted,
record_id: record_id,
release: release
}
end
@spec collected(String.t(), String.t(), map()) :: t()
def collected(number, record_id, release) do
%__MODULE__{
number: number,
status: :collected,
record_id: record_id,
release: release
}
end
@spec not_found(String.t()) :: t()
def not_found(number) do
%__MODULE__{
number: number,
status: :not_found
}
end
end