21 lines
855 B
C#
21 lines
855 B
C#
namespace NeonSprawl.Server.Game.Rewards;
|
|
|
|
/// <summary>Idempotent per-player reward delivery records (NEO-126).</summary>
|
|
public interface IRewardDeliveryStore
|
|
{
|
|
/// <summary>First record returns <c>true</c>; replays for the same player+source return <c>false</c>.</summary>
|
|
bool TryRecord(RewardDeliveryEvent deliveryEvent);
|
|
|
|
bool TryGet(string playerId, string questId, out RewardDeliveryEvent deliveryEvent);
|
|
|
|
bool TryGet(string playerId, string sourceKind, string sourceId, out RewardDeliveryEvent deliveryEvent);
|
|
|
|
/// <summary>
|
|
/// Dev fixture only — removes one delivery row so completion grants can re-apply on Bruno reset.
|
|
/// Idempotent when the row is already absent.
|
|
/// </summary>
|
|
bool TryClear(string playerId, string questId);
|
|
|
|
bool TryClear(string playerId, string sourceKind, string sourceId);
|
|
}
|