neon-sprawl/server/NeonSprawl.Server/Game/Rewards/IRewardDeliveryStore.cs

17 lines
687 B
C#

namespace NeonSprawl.Server.Game.Rewards;
/// <summary>Idempotent per-player quest completion reward delivery record (NEO-126).</summary>
public interface IRewardDeliveryStore
{
/// <summary>First record returns <c>true</c>; replays for the same player+quest return <c>false</c>.</summary>
bool TryRecord(RewardDeliveryEvent deliveryEvent);
bool TryGet(string playerId, string questId, 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);
}