Puntos

Consultar, ganar y gastar puntos canjeables.

Los puntos son una moneda virtual que tus usuarios ganan y gastan. Son independientes del sistema de XP/niveles.

Consultar saldo

final balance = await SouthGamesSDK.getPointsBalance(
  externalUserId: 'user_123',
);
print('${balance.pointsName}: ${balance.pointsBalance}');
print('Ganados: ${balance.pointsEarned}');
print('Gastados: ${balance.pointsSpent}');

Historial

final history = await SouthGamesSDK.getPointsHistory(
  externalUserId: 'user_123',
  limit: 10,
);
for (final entry in history) {
  print('${entry.type}: ${entry.amount} — ${entry.reason}');
}

Gastar puntos

try {
  final spend = await SouthGamesSDK.spendPoints(
    externalUserId: 'user_123',
    amount: 100,
    reason: 'Canje por descuento',
  );
  print('Gastaste ${spend.pointsSpent}. Saldo: ${spend.newBalance}');
} on SouthGamesException catch (e) {
  if (e.code == 'INSUFFICIENT_BALANCE') {
    print('Saldo insuficiente');
  }
}

Ganar puntos manualmente

final earn = await SouthGamesSDK.earnPoints(
  externalUserId: 'user_123',
  action: 'custom',
  eventName: 'purchase_completed',
);
print('Ganaste ${earn.pointsAwarded}. Saldo: ${earn.newBalance}');

Modelos

PointsBalance

CampoTipoDescripcion
pointsBalanceintSaldo actual
pointsEarnedintTotal ganado historico
pointsSpentintTotal gastado historico
pointsNameStringNombre de la moneda

PointsLedgerEntry

CampoTipoDescripcion
typeStringearn o spend
amountintCantidad
balanceintSaldo despues de la operacion
reasonStringMotivo
actionString?Accion que genero los puntos
createdAtDateTimeFecha

Puntos automaticos

Los puntos se ganan automaticamente al:

  • Jugar un juego (game_play)
  • Ganar un juego (game_win)
  • Canjear un codigo (code_redeem)
  • Trackear eventos custom

Las reglas se configuran en Puntos en la consola.