lib/vr_chat/model/current_user.ex

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

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

  @derive [Poison.Encoder]
  defstruct [
    :acceptedTOSVersion,
    :accountDeletionDate,
    :activeFriends,
    :allowAvatarCopying,
    :bio,
    :bioLinks,
    :currentAvatar,
    :currentAvatarAssetUrl,
    :currentAvatarImageUrl,
    :currentAvatarThumbnailImageUrl,
    :date_joined,
    :developerType,
    :displayName,
    :emailVerified,
    :fallbackAvatar,
    :friendGroupNames,
    :friendKey,
    :friends,
    :hasBirthday,
    :hasEmail,
    :hasLoggedInFromClient,
    :hasPendingEmail,
    :homeLocation,
    :id,
    :isFriend,
    :last_login,
    :last_platform,
    :obfuscatedEmail,
    :obfuscatedPendingEmail,
    :oculusId,
    :offlineFriends,
    :onlineFriends,
    :pastDisplayNames,
    :profilePicOverride,
    :state,
    :status,
    :statusDescription,
    :statusFirstTime,
    :statusHistory,
    :steamDetails,
    :steamId,
    :tags,
    :twoFactorAuthEnabled,
    :twoFactorAuthEnabledDate,
    :unsubscribe,
    :userIcon,
    :username
  ]

  @type t :: %__MODULE__{
    :acceptedTOSVersion => integer(),
    :accountDeletionDate => Date.t | nil,
    :activeFriends => [VRChat.Model.String.t] | nil,
    :allowAvatarCopying => boolean(),
    :bio => String.t,
    :bioLinks => [String.t],
    :currentAvatar => String.t,
    :currentAvatarAssetUrl => String.t,
    :currentAvatarImageUrl => String.t,
    :currentAvatarThumbnailImageUrl => String.t,
    :date_joined => Date.t,
    :developerType => VRChat.Model.DeveloperType.t,
    :displayName => String.t,
    :emailVerified => boolean(),
    :fallbackAvatar => String.t | nil,
    :friendGroupNames => [String.t],
    :friendKey => String.t,
    :friends => [VRChat.Model.String.t],
    :hasBirthday => boolean(),
    :hasEmail => boolean(),
    :hasLoggedInFromClient => boolean(),
    :hasPendingEmail => boolean(),
    :homeLocation => String.t,
    :id => String.t,
    :isFriend => boolean(),
    :last_login => DateTime.t,
    :last_platform => String.t,
    :obfuscatedEmail => String.t,
    :obfuscatedPendingEmail => String.t,
    :oculusId => String.t,
    :offlineFriends => [VRChat.Model.String.t] | nil,
    :onlineFriends => [VRChat.Model.String.t] | nil,
    :pastDisplayNames => [VRChat.Model.PastDisplayName.t],
    :profilePicOverride => String.t,
    :state => VRChat.Model.UserState.t,
    :status => VRChat.Model.UserStatus.t,
    :statusDescription => String.t,
    :statusFirstTime => boolean(),
    :statusHistory => [String.t],
    :steamDetails => map(),
    :steamId => String.t,
    :tags => [VRChat.Model.String.t],
    :twoFactorAuthEnabled => boolean(),
    :twoFactorAuthEnabledDate => DateTime.t | nil,
    :unsubscribe => boolean(),
    :userIcon => String.t,
    :username => String.t
  }
end

defimpl Poison.Decoder, for: VRChat.Model.CurrentUser do
  import VRChat.Deserializer
  def decode(value, options) do
    value
    |> deserialize(:accountDeletionDate, :date, nil, options)
    |> deserialize(:date_joined, :date, nil, options)
    |> deserialize(:developerType, :struct, VRChat.Model.DeveloperType, options)
    |> deserialize(:pastDisplayNames, :list, VRChat.Model.PastDisplayName, options)
    |> deserialize(:state, :struct, VRChat.Model.UserState, options)
    |> deserialize(:status, :struct, VRChat.Model.UserStatus, options)
  end
end