lib/spatio/model/files_and_folders_response.ex

# NOTE: This file is auto generated by OpenAPI Generator 7.22.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule Spatio.Model.FilesAndFoldersResponse do
  @moduledoc """
  Aggregated `{files, folders, accounts}` envelope used by the renderer's file-browser. Calls `ListFiles` and `ListFolders` in parallel and merges the results — saves a round-trip when the UI shows both side-by-side. 
  """

  @derive JSON.Encoder
  defstruct [
    :files,
    :folders,
    :accounts,
    :total,
    :hasMore,
    :nextOffset
  ]

  @type t :: %__MODULE__{
    :files => [Spatio.Model.SpatioFile.t] | nil,
    :folders => [Spatio.Model.Folder.t] | nil,
    :accounts => [Spatio.Model.AccountStatus.t] | nil,
    :total => integer(),
    :hasMore => boolean(),
    :nextOffset => integer() | nil
  }

  alias Spatio.Deserializer

  def decode(value) do
    value
     |> Deserializer.deserialize(:files, :list, Spatio.Model.SpatioFile)
     |> Deserializer.deserialize(:folders, :list, Spatio.Model.Folder)
     |> Deserializer.deserialize(:accounts, :list, Spatio.Model.AccountStatus)
  end
end