using QRRapidoApp.Models; namespace QRRapidoApp.Services { public record RateLimitResult( bool Allowed, int PerMinuteLimit, int PerMinuteUsed, long ResetUnixTimestamp, int MonthlyLimit, int MonthlyUsed, bool MonthlyExceeded ); public interface IApiRateLimitService { /// /// Checks the rate limit for the given API key prefix and plan tier. /// Increments the counter only if the request is allowed. /// Task CheckAndIncrementAsync(string keyPrefix, ApiPlanTier tier); } }