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
| Campo | Tipo | Descripcion |
|---|---|---|
pointsBalance | int | Saldo actual |
pointsEarned | int | Total ganado historico |
pointsSpent | int | Total gastado historico |
pointsName | String | Nombre de la moneda |
PointsLedgerEntry
| Campo | Tipo | Descripcion |
|---|---|---|
type | String | earn o spend |
amount | int | Cantidad |
balance | int | Saldo despues de la operacion |
reason | String | Motivo |
action | String? | Accion que genero los puntos |
createdAt | DateTime | Fecha |
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.