Pular para o conteúdo principal

Módulo de jugador

El Módulo de jugador proporciona acceso a la información del jugador y las preferencias de gamificación en el SDK web de Gamanza Engage.

Acceso al módulo

El PlayerModule se inicializa internamente por el SDK y no debe ser instanciado directamente. Se puede acceder a través de la instancia principal del SDK.

// Ejemplo de acceso al PlayerModule a través del SDK
const { Player } = GamanzaEngageWebClientSDK.getInstance();

Métodos

getJugador

Devuelve la información del jugador autenticado actual desde la plataforma Gamanza Engage.

Firma:

getJugador(): Promise<DatosJugador | null>

Devuelve:

TipoDescripción
Promise<PlayerData | null>Una promesa que se resuelve con los datos del jugador o null si falta el jugador o hay un error.

Ejemplo:

// Obtener información del jugador
const player = await sdk.Player.getPlayer();
if (player) {
console.log(`ID de jugador: ${player.playerId}`);
console.log(`Nombre de jugador: ${player.firstName} ${player.lastName}`);

// Acceder al estado de gamificación
console.log(`Gamificación habilitada: ${player.gamificationOpt.enable}`);

// Acceder a los datos de rango si están disponibles
if (player.ranksData) {
console.log(`Rango actual: ${player.ranksData.rank.name}`);
console.log(`Nivel actual: ${player.ranksData.level.levelNumber}`);
console.log(`Saldo de XP: ${player.ranksData.xpBalance}`);
}

// Acceder a los datos de billetera si están disponibles
if (player.walletData) {
console.log(`Saldo de billetera: ${player.walletData.balance}`);
}
}

opcionesGamificaciónJugador

Permite habilitar o deshabilitar las funciones de gamificación de Gamanza Engage para el jugador autenticado actual.

Firma:

opcionesGamificaciónJugador(activar: boolean, razones: Razón[]): Promise<RespuestaSimple<void>>

Parámetros:

NombreTipoDescripción
activarbooleanDefine si el jugador se suscribe (verdadero) o se da de baja (falso)
razonesRazón[]Lista de posibles razones por las que el jugador se da de baja (obligatorio al darse de baja)

Devuelve:

TipoDescripción
Promise<RespuestaSimple<void>>Una promesa que se resuelve en una respuesta simple que indica éxito o fallo

Ejemplo:

// Darse de baja de la gamificación con razones
const reasons = await sdk.Player.getListOfOptOutReasons();
const selectedReasons = [reasons[0]]; // Seleccionar la primera razón de la lista

const response = await sdk.Player.playerGamificationOpts(false, selectedReasons);
if (response.ok) {
console.log('Se ha dado de baja de la gamificación con éxito');
} else {
console.error('No se pudo dar de baja de la gamificación:', response.error);
}

// Suscribirse a la gamificación (no se necesitan razones)
const optInResponse = await sdk.Player.playerGamificationOpts(true, []);
if (optInResponse.ok) {
console.log('Se ha suscrito a la gamificación con éxito');
}

obtenerListaDeRazonesDeExclusión

Devuelve la lista de razones predefinidas configuradas en la instancia de administración de Gamanza Engage para ser mostradas al jugador cuando decida darse de baja de la gamificación.

Firma:

obtenerListaDeRazonesDeExclusión(): Promise<Razón[]>

Devuelve:

TipoDescripción
Promise<Razón[]>Una promesa que se resuelve en una matriz de razones predefinidas para la exclusión voluntaria

Ejemplo:

// Obtener la lista de razones de exclusión voluntaria
const reasons = await sdk.Player.obtenerListaDeRazonesDeExclusión();
console.log('Razones de exclusión voluntaria disponibles:');
reasons.forEach(reason => {
// Mostrar la razón en el idioma del usuario si está disponible
const translation = reason.translations?.find(t => t.language === userLanguage);
console.log(translation?.text || reason.option);
};

Interfaces relacionadas

PlayerData

La interfaz principal para la información del jugador.

interface DatosJugador {
playerId: string;
firstName?: string;
lastName?: string;
gender?: string;
phone?: string;
username?: string;
email?: string;
language?: string;
currency?: string;
birthDate?: string;
nationality?: string;
address?: Dirección;
session?: SesiónJugador;
gamificationOpt: OpciónGamificación;
ranksData?: DatosRanking;
walletData?: DatosCartera;
}
PropiedadTipoRequeridoDescripción
playerIdstringIdentificador único para el jugador
firstNamestringNoNombre del jugador
lastNamestringNoApellido del jugador
genderstringNoGénero del jugador
phonestringNoNúmero de teléfono del jugador
usernamestringNoNombre de usuario del jugador
emailstringNoDirección de correo electrónico del jugador
languagestringNoIdioma preferido del jugador
currencystringNoMoneda preferida del jugador
birthDatestringNoFecha de nacimiento del jugador
nationalitystringNoNacionalidad del jugador
addressDirecciónNoInformación de dirección del jugador
sessionSesión del jugadorNoInformación de la sesión del jugador
gamificationOptOpt de gamificaciónPreferencias de gamificación del jugador
ranksDataDatos de rangoNoInformación de rango del jugador
walletDataDatos de carteraNoInformación de la cartera del jugador

Dirección

Interfaz para la información de dirección del jugador.

interfaz Dirección {
país?: cadena;
ciudad?: cadena;
calle?: cadena;
código postal?: cadena;
}
PropiedadTipoRequeridoDescripción
paíscadenaNoPaís del jugador
ciudadcadenaNoCiudad del jugador
callecadenaNoDirección del jugador
código postalcadenaNoCódigo postal del jugador

PlayerSession

Interfaz para la información de la sesión del jugador.

interfaz PlayerSession {
registrationDate?: string;
registrationDevice?: string;
verificationDate?: string;
verificationChannel?: string;
numberDaysInLastTwoLogins?: number;
lastLoginDate?: string;
secondLastLoginDate?: string;
loginCount?: number;
lastLogoutDate?: string;
}
PropiedadTipoRequeridoDescripción
registrationDatestringNoFecha de registro del jugador
registrationDevicestringNoDispositivo utilizado para el registro
verificationDatestringNoFecha de verificación del jugador
verificationChannelstringNoCanal utilizado para la verificación
numberDaysInLastTwoLoginsnumberNoNúmero de días entre los dos últimos inicios de sesión
lastLoginDatestringNoFecha del último inicio de sesión del jugador
secondLastLoginDatestringNoFecha del penúltimo inicio de sesión del jugador
loginCountnumberNoNúmero total de inicios de sesión
"lastLogoutDate""string"NoFecha del último cierre de sesión del jugador

GamificationOpt

Interfaz para las preferencias de gamificación del jugador.

interface GamificationOpt {
enable: boolean;
reason?: Reason[];
resetPolicy?: Record<string, unknown>;
requestedByType?: string;
requestedBy?: string;
requestedAt?: string;
}
PropiedadTipoRequeridoDescripción
"enable""boolean"Si la gamificación está habilitada para el jugador
"reason""Reason[]"NoRazones para optar por no participar en la gamificación
"resetPolicy"Record<string, unknown>NoPolítica para restablecer la gamificación
"requestedByType""string"NoTipo de entidad que solicitó el cambio de estado de la gamificación
"requestedBy""string"NoEntidad que solicitó el cambio de estado de la gamificación
"requestedAt""string"NoFecha en que se solicitó el cambio de estado de la gamificación

Razón

Interfaz para razones de exclusión.

interface Reason {
option?: string;
translations?: Translation[];
}
PropiedadTipoRequeridoDescripción
"option""string"NoIdentificador de la razón
"translations""Translation[]"NoTraducciones del texto del motivo

Traducción

Interfaz para traducciones.

interfaz Traducción {
idioma?: string;
texto?: string;
}
PropiedadTipoObligatorioDescripción
idiomastringNoCódigo de idioma
textostringNoTexto traducido

DatosDeRango

Interfaz para información de rango de jugador.

interfaz DatosDeRango {
_id: string;
idJugador: string;
categoría: Categoría;
rango: Rango;
nivel: Nivel;
balanceXP: number;
creadoEn: string;
actualizadoEn: string;
moneda: string;
periodoAnterior?: PeriodoAnterior;
progresióndRango: number;
progresióndNivel: number;
posiciónDeNivel?: PosiciónDeNivel;
puntosHastaProximoNivel: number;
puntosHastaProximoRango: number;
proximoNivel?: Nivel;
proximoRango?: Rango;
puntosParaMantenerRango?: number;
xpComparativoPeríodo?: string;
actividadDeApuesta?: TipoDeActividadDeApuesta;
}
PropiedadTipoObligatorioDescripción
_idstringIdentificador único para los datos de rango
idJugadorstringIdentificador de jugador
categoríaCategoríaCategoría de rango
rangoRangoRango actual
nivelNivelNivel actual
balanceXPnumberSaldo actual de XP
createdAtstringFecha de creación
updatedAtstringÚltima fecha de actualización
currencystringMoneda utilizada
previousPeriodPreviousPeriodNoDatos del período anterior
rankProgressnumberProgreso hacia el siguiente rango (0-100)
Progreso del nivelNúmeroProgreso hacia el siguiente nivel (0-100)
Posición del nivelPosición del nivelNoPosición dentro del nivel actual
Puntos hasta el siguiente nivelNúmeroPuntos necesarios para alcanzar el siguiente nivel
Puntos hasta el siguiente rangoNúmeroPuntos necesarios para alcanzar el siguiente rango
Siguiente nivelNivelNoInformación del siguiente nivel
Siguiente rangoRangoNoInformación del siguiente rango
Puntos para mantener el rangoNúmeroNoPuntos necesarios para mantener el rango actual
Período comparativo de XPCadenaNoPeríodo utilizado para la comparación de XP
Actividad de apuestaTipo de actividad de apuestaNoInformación de actividad de apuestas

Categoría

Interfaz para categorías de rango.

interfaz Categoría {
_id: cadena;
nombre: cadena;
}
PropiedadTipoRequeridoDescripción
_idcadenaIdentificador único para la categoría
nombrecadenaNombre de categoría

Rango

Interfaz para los rangos de jugador.

interfaz Rango {
_id: cadena;
nombre: cadena;
urlImagen: cadena;
traducciones: RanksTranslation[];
}
PropiedadTipoRequeridoDescripción
_idcadenaIdentificador único para el rango
nombrecadenaNombre de rango
urlImagencadenaURL de la imagen del rango
traduccionesRanksTranslation[]Traducciones de la información de rango

Nivel

Interfaz para los niveles de jugador.

interfaz Nivel {
_id: string;
levelNumber: number;
}
PropiedadTipoRequeridoDescripción
_idCadenaIdentificador único para el nivel
Número de nivelNúmeroNúmero de nivel

DatosDeCartera

Interfaz para información de la cartera del jugador.

interfaz DatosDeCartera {
_id: string;
balance: number;
createdAt: string;
updatedAt: string;
}
PropiedadTipoRequeridoDescripción
_idCadenaIdentificador único para la cartera
SaldoNúmeroSaldo actual de la cartera
Creado enCadenaFecha de creación
Actualizado enCadenaFecha de la última actualización

RespuestaSimple

Interfaz genérica para respuestas simples.

interfaz RespuestaSimple<T> {
ok: boolean;
data: T | null;
error?: {
code: string;
message: string;
};
}
PropiedadTipoRequeridoDescripción
CorrectoBooleanoSi la operación tuvo éxito
DatosT | nullDatos de respuesta (nulo para respuestas vacías)
Error{ code: string; message: string; }NoInformación de error si la operación falló