namespace RR3CommunityServer.Services; // Session Service public interface ISessionService { Task CreateSession(string? synergyId = null); Task ValidateSession(string sessionId); Task GetSynergyIdFromSession(string sessionId); } // User Service public interface IUserService { Task GetOrCreateDeviceId(string? existingDeviceId, string hardwareId); Task ValidateDeviceId(string deviceId); Task GetOrCreateAnonUid(); Task GetOrCreateSynergyId(string deviceId); } // Catalog Service public interface ICatalogService { Task> GetAvailableItems(); Task> GetCategories(); Task GetDownloadUrl(string itemId); } // DRM Service public interface IDrmService { Task GenerateNonce(); Task> GetPurchasedItems(string synergyId); Task VerifyAndRecordPurchase(string synergyId, Models.PurchaseVerificationRequest request); }