lib/vrchat/model/group.ex

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

defmodule VRChat.Model.Group do
  @moduledoc """

  """

  @derive [Poison.Encoder]
  defstruct [
    :id,
    :name,
    :shortCode,
    :discriminator,
    :description,
    :iconUrl,
    :bannerUrl,
    :privacy,
    :ownerId,
    :rules,
    :links,
    :languages,
    :iconId,
    :bannerId,
    :memberCount,
    :memberCountSyncedAt,
    :isVerified,
    :joinState,
    :tags,
    :galleries,
    :createdAt,
    :onlineMemberCount,
    :membershipStatus,
    :myMember,
    :roles
  ]

  @type t :: %__MODULE__{
          :id => String.t() | nil,
          :name => String.t() | nil,
          :shortCode => String.t() | nil,
          :discriminator => String.t() | nil,
          :description => String.t() | nil,
          :iconUrl => String.t() | nil,
          :bannerUrl => String.t() | nil,
          :privacy => VRChat.Model.GroupPrivacy.t() | nil,
          :ownerId => String.t() | nil,
          :rules => String.t() | nil,
          :links => [String.t()] | nil,
          :languages => [String.t()] | nil,
          :iconId => String.t() | nil,
          :bannerId => String.t() | nil,
          :memberCount => integer() | nil,
          :memberCountSyncedAt => DateTime.t() | nil,
          :isVerified => boolean() | nil,
          :joinState => VRChat.Model.GroupJoinState.t() | nil,
          :tags => [String.t()] | nil,
          :galleries => [VRChat.Model.GroupGallery.t()] | nil,
          :createdAt => DateTime.t() | nil,
          :onlineMemberCount => integer() | nil,
          :membershipStatus => VRChat.Model.GroupMemberStatus.t() | nil,
          :myMember => VRChat.Model.GroupMyMember.t() | nil,
          :roles => [VRChat.Model.GroupRole.t()] | nil
        }
end

defimpl Poison.Decoder, for: VRChat.Model.Group do
  import VRChat.Deserializer

  def decode(value, options) do
    value
    |> deserialize(:privacy, :struct, VRChat.Model.GroupPrivacy, options)
    |> deserialize(:joinState, :struct, VRChat.Model.GroupJoinState, options)
    |> deserialize(:galleries, :list, VRChat.Model.GroupGallery, options)
    |> deserialize(:membershipStatus, :struct, VRChat.Model.GroupMemberStatus, options)
    |> deserialize(:myMember, :struct, VRChat.Model.GroupMyMember, options)
    |> deserialize(:roles, :list, VRChat.Model.GroupRole, options)
  end
end