// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System.Collections.Generic; using System.Threading.Tasks; using Squidex.Domain.Apps.Entities.Apps; using Squidex.Domain.Apps.Entities.Rules; using Squidex.Domain.Apps.Entities.Schemas; using Squidex.Infrastructure; using Squidex.Infrastructure.Security; namespace Squidex.Domain.Apps.Entities { public interface IAppProvider { Task<(IAppEntity?, ISchemaEntity?)> GetAppWithSchemaAsync(DomainId appId, DomainId id, bool canCache = false); Task GetAppAsync(DomainId appId, bool canCache = false); Task GetAppAsync(string appName, bool canCache = false); Task> GetUserAppsAsync(string userId, PermissionSet permissions); Task GetSchemaAsync(DomainId appId, DomainId id, bool canCache = false); Task GetSchemaAsync(DomainId appId, string name, bool canCache = false); Task> GetSchemasAsync(DomainId appId); Task> GetRulesAsync(DomainId appId); } }