// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System.Security.Claims; using System.Threading.Tasks; using Squidex.Domain.Apps.Core.Contents; using Squidex.Domain.Apps.Entities.Schemas; namespace Squidex.Domain.Apps.Entities.Contents { public interface IContentWorkflow { Task GetInitialStatusAsync(ISchemaEntity schema); Task CanPublishOnCreateAsync(ISchemaEntity schema, NamedContentData data, ClaimsPrincipal user); Task CanMoveToAsync(IContentEntity content, Status status, Status next, ClaimsPrincipal user); Task CanUpdateAsync(IContentEntity content, Status status, ClaimsPrincipal user); Task GetInfoAsync(IContentEntity content, Status status); Task GetNextAsync(IContentEntity content, Status status, ClaimsPrincipal user); Task GetAllAsync(ISchemaEntity schema); } }