using LctMonolith.Models.Database;
using LctMonolith.Services.Models;
namespace LctMonolith.Services.Contracts;
/// Gamification progression logic (progress, rewards, rank evaluation).
public interface IGamificationService
{
/// Get current user progression snapshot (xp, mana, next rank requirements).
Task GetProgressAsync(Guid userId, CancellationToken ct = default);
/// Apply mission completion rewards (xp, mana, skills, artifacts) to user.
Task ApplyMissionCompletionAsync(Guid userId, Mission mission, CancellationToken ct = default);
/// Re-evaluate and apply rank upgrade if requirements are met.
Task EvaluateRankUpgradeAsync(Guid userId, CancellationToken ct = default);
}