Pular para o conteúdo principal

Módulo de Jogador

O Módulo de Jogador fornece acesso às informações do jogador e às preferências de gamificação no Gamanza Engage Web Client SDK.

Acessando o Módulo

O PlayerModule é inicializado internamente pelo SDK e não deve ser instanciado diretamente. Ele é acessível através da instância principal do SDK.

// Exemplo de acesso ao PlayerModule através do SDK
const { Player } = GamanzaEngageWebClientSDK.getInstance();

Métodos

obterJogador

Retorna as informações do jogador autenticado atual da plataforma Gamanza Engage.

Assinatura:

obterJogador(): Promise<PlayerData | null>

Retorna:

TipoDescrição
Promise<PlayerData | null>Uma promessa que é resolvida com os dados do jogador ou nulo se o jogador estiver faltando ou houver um erro.

Exemplo:

// Obter informações do jogador
const player = await sdk.Player.obterJogador();
if (player) {
console.log(`ID do Jogador: ${player.playerId}`);
console.log(`Nome do Jogador: ${player.firstName} ${player.lastName}`);

// Acessar o status da gamificação
console.log(`Gamificação Habilitada: ${player.gamificationOpt.enable}`);

// Acessar os dados de classificação, se disponíveis
if (player.ranksData) {
console.log(`Classificação Atual: ${player.ranksData.rank.name}`);
console.log(`Nível Atual: ${player.ranksData.level.levelNumber}`);
console.log(`Saldo de XP: ${player.ranksData.xpBalance}`);
}

// Acessar os dados da carteira, se disponíveis
if (player.walletData) {
console.log(`Saldo da Carteira: ${player.walletData.balance}`);
}
}

opçõesGamificaçãoJogador

Permite habilitar ou desabilitar os recursos de Gamificação Gamanza Engage para o jogador autenticado atual.

Assinatura:

opçõesGamificaçãoJogador(enable: boolean, reasons: Reason[]): Promise<SimpleResponse<void>>

Parâmetros:

NomeTipoDescrição
enableTipo booleanDefine se o jogador está optando por participar (verdadeiro) ou optando por não participar (falso)
reasonsReason[]Lista de possíveis razões pelas quais o jogador está optando por não participar (obrigatório ao optar por não participar)

Retorna:

TipoDescrição
Promise<SimpleResponse<void>>Uma promessa que é resolvida com uma resposta simples indicando sucesso ou falha

Exemplo:

// Optar por não participar da gamificação com razões
const reasons = await sdk.Player.obterListaDeRazõesParaOptarPorNãoParticipar();
const selectedReasons = [reasons[0]]; // Selecionar a primeira razão da lista

const response = await sdk.Player.opçõesGamificaçãoJogador(false, selectedReasons);
if (response.ok) {
console.log('Optou com sucesso por não participar da gamificação');
} else {
console.error('Falha ao optar por não participar da gamificação:', response.error);
}

// Optar por participar da gamificação (sem razões necessárias)
const optInResponse = await sdk.Player.opçõesGamificaçãoJogador(true, []);
if (optInResponse.ok) {
console.log('Optou com sucesso por participar da gamificação');
}

obterListaDeRazõesParaOptarPorNãoParticipar

Retorna a lista de razões predefinidas configuradas na instância Gamanza Engage Admin para serem exibidas ao jogador quando eles decidirem optar por não participar da gamificação.

Assinatura:

getListOfOptOutReasons(): Promise<Reason[]>

Retorna:

TipoDescrição
Promise<Razão[]>Uma promessa que é resolvida em um array de motivos pré-definidos para opt-out

Exemplo:

// Obter a lista de motivos de opt-out
const razoes = await sdk.Player.getListOfOptOutReasons();
console.log('Motivos de opt-out disponíveis:');
razoes.forEach(razao => {
// Exibir o motivo no idioma do usuário, se disponível
const traducao = razao.translations?.find(t => t.language === userLanguage);
console.log(traducao?.text || razao.option);
});

Interfaces Relacionadas

PlayerData

A interface principal para informações do jogador.

interface PlayerData {
playerId: string;
firstName?: string;
lastName?: string;
gender?: string;
phone?: string;
username?: string;
email?: string;
language?: string;
currency?: string;
birthDate?: string;
nationality?: string;
address?: Endereço;
session?: SessãoJogador;
gamificationOpt: OpçãoGamificação;
ranksData?: DadosRanks;
walletData?: DadosCarteira;
}
PropriedadeTipoObrigatórioDescrição
playerIdTipo stringSimIdentificador único do jogador
firstNameTipo stringNãoPrimeiro nome do jogador
lastNameTipo stringNãoSobrenome do jogador
genderTipo stringNãoGênero do jogador
phoneTipo stringNãoNúmero de telefone do jogador
usernameTipo stringNãoNome de usuário do jogador
emailTipo stringNãoEndereço de email do jogador
languageTipo stringNãoIdioma preferido do jogador
currencyTipo stringNãoMoeda preferida do jogador
birthDateTipo stringNãoData de nascimento do jogador
nationalityTipo stringNãoNacionalidade do jogador
addressAddressNãoInformações de endereço do jogador
sessionPlayerSessionNãoInformações da sessão do jogador
gamificationOptGamificationOptSimPreferências de gamificação do jogador
ranksDataRanksDataNãoInformações de classificação do jogador
walletDataWalletDataNãoInformações da carteira do jogador

Endereço

Interface para informações de endereço do jogador.

interface Address {
country?: string;
city?: string;
street?: string;
postcode?: string;
}
PropriedadeTipoObrigatórioDescrição
countryTipo stringNãoPaís do jogador
cityTipo stringNãoCidade do jogador
ruastringNãoEndereço residencial do jogador
código postalstringNãoCódigo postal do jogador

PlayerSession

Interface para informações da sessão do jogador.

interface PlayerSession {
registrationDate?: string;
registrationDevice?: string;
verificationDate?: string;
verificationChannel?: string;
numberDaysInLastTwoLogins?: number;
lastLoginDate?: string;
secondLastLoginDate?: string;
loginCount?: number;
lastLogoutDate?: string;
}
PropriedadeTipoObrigatórioDescrição
registrationDatestringNãoData em que o jogador se registrou
registrationDevicestringNãoDispositivo usado para registro
verificationDatestringNãoData em que o jogador foi verificado
verificationChannelstringNãoCanal usado para verificação
numberDaysInLastTwoLoginsnumberNãoNúmero de dias entre os dois últimos logins
lastLoginDatestringNãoData do último login do jogador
secondLastLoginDatestringNãoData do penúltimo login do jogador
loginCountnumberNãoNúmero total de logins
última data de logoutstringNãoData do último logout do jogador

GamificationOpt

Interface para preferências de gamificação do jogador.

interface GamificationOpt {
ativar: boolean;
razão?: Razão[];
políticaDeRedefinição?: Record<string, unknown>;
solicitadaPorTipo?: string;
solicitadaPor?: string;
solicitadaEm?: string;
}
PropriedadeTipoObrigatórioDescrição
ativarbooleanSimSe a gamificação está ativada para o jogador
razãoRazão[]NãoRazões para se desligar da gamificação
políticaDeRedefiniçãoRecord<string, unknown>NãoPolítica para redefinir a gamificação
solicitadaPorTipostringNãoTipo de entidade que solicitou a mudança no status da gamificação
solicitadaPorstringNãoEntidade que solicitou a mudança no status da gamificação
solicitadaEmTipo stringNãoData em que a mudança no status da gamificação foi solicitada

Razão

Interface para razões de desativação.

interface Razão {
opção?: string;
traduções?: Tradução[];
}
PropriedadeTipoObrigatórioDescrição
opçãoTipo stringNãoIdentificador para a razão
traduçõesTradução[]NãoTraduções do texto da razão

Tradução

Interface para traduções.

interface Tradução {
idioma?: string;
texto?: string;
}
PropriedadeTipoObrigatórioDescrição
idiomaTipo stringNãoCódigo de idioma
textoTipo stringNãoTexto traduzido

DadosClassificação

Interface para informações de classificação do jogador.

interface DadosClassificação {
_id: string;
jogadorId: string;
categoria: Categoria;
classificação: Classificação;
nível: Nível;
saldoXP: number;
criadoEm: string;
atualizadoEm: string;
moeda: string;
períodoAnterior?: PadrãoPeriodo;
progressoClassificação: number;
progressoNível: number;
posiçãoNível?: PosiçãoNível;
pontosAteProximoNível: number;
pontosAteProximaClassificação: number;
próximoNível?: Nível;
próximaClassificação?: Classificação;
pontosParaManterClassificação?: number;
xpPeríodoComparativo?: string;
atividadeAposta?: TipoAtividadeAposta;
}
PropriedadeTipoObrigatórioDescrição
_idTipo stringSimIdentificador único para os dados de classificação
jogadorIdTipo stringSimIdentificador do jogador
categoriaCategoriaSimCategoria de classificação
classificaçãoClassificaçãoSimClassificação atual
nívelNívelSimNível atual
saldoXPTipo numberSimSaldo atual de XP
createdAtTipo stringSimData de criação
updatedAtTipo stringSimÚltima data de atualização
currencyTipo stringSimMoeda utilizada
previousPeriodPreviousPeriodNãoDados do período anterior
rankProgressTipo numberSimProgresso para a próxima classificação (0-100)
levelProgressTipo numberSimProgresso para o próximo nível (0-100)
levelPositionLevelPositionNãoPosição dentro do nível atual
pointsUntilNextLevelTipo numberSimPontos necessários para alcançar o próximo nível
pointsUntilNextRankTipo numberSimPontos necessários para alcançar a próxima classificação
nextLevelNívelNãoInformações sobre o próximo nível
nextRankClassificaçãoNãoInformações sobre a próxima classificação
pointsToKeepRankTipo numberNãoPontos necessários para manter a classificação atual
xpComparativePeriodTipo stringNãoPeríodo usado para comparação de XP
betActivityBetActivityTypeNãoInformações sobre a atividade de apostas

Categoria

Interface para categorias de classificação.

interface Categoria {
_id: string;
name: string;
}
PropriedadeTipoObrigatórioDescrição
_idTipo stringSimIdentificador único para a categoria
nomeTipo stringSimNome da categoria

Classificação

Interface para classificações de jogadores.

interface Rank {
_id: string;
name: string;
imageUrl: string;
translations: RanksTranslation[];
}
PropriedadeTipoObrigatórioDescrição
_idTipo stringSimIdentificador único para a classificação
nomeTipo stringSimNome da classificação
imageUrlTipo stringSimURL para a imagem da classificação
traduçõesRanksTranslation[]SimTraduções das informações da classificação

Nível

Interface para níveis de jogadores.

interface Nível {
_id: string;
numeroDaNivel: number;
}
PropriedadeTipoObrigatórioDescrição
_idTipo stringSimIdentificador único para o nível
numeroDaNivelTipo numberSimNúmero do nível

DadosDeCarteira

Interface para informações da carteira do jogador.

interface DadosDeCarteira {
_id: string;
saldo: number;
criadoEm: string;
atualizadoEm: string;
}
PropriedadeTipoObrigatórioDescrição
_idTipo stringSimIdentificador único para a carteira
saldoTipo numberSimSaldo atual da carteira
criadoEmTipo stringSimData de criação
atualizadoEmTipo stringSimData da última atualização

RespostaSimples

Interface genérica para respostas simples.

interface RespostaSimples<T> {
ok: boolean;
data: T | null;
error?: {
code: string;
message: string;
};
}
PropriedadeTipoObrigatórioDescrição
okTipo booleanSimSe a operação foi bem-sucedida
dataT | nullSimDados de resposta (nulo para respostas vazias)
erro{ code: string; message: string; }NãoInformações de erro se a operação falhar