using e_suite.Database.Audit;
using e_suite.Database.Core;
using e_suite.Database.Core.Tables.Workflow;

namespace e_suite.API.Common.repository;

public interface IWorkflowTemplateRepository : IRepository
{
    public IQueryable<Database.Core.Tables.Workflow.Workflow> GetWorkflows();
    IQueryable<WorkflowVersion> GetWorkflowVersions();
    Task EditWorkflowVersionAsync(AuditUserDetails auditUserDetails, WorkflowVersion workflowVersion, CancellationToken cancellationToken);
    Task AddWorkflow(AuditUserDetails auditUserDetails, Database.Core.Tables.Workflow.Workflow workflow, CancellationToken cancellationToken);
    Task AddWorkflowVersion(AuditUserDetails auditUserDetails, WorkflowVersion workflowVersion, CancellationToken cancellationToken);
    Task EditWorkflowAsync(AuditUserDetails auditUserDetails, Database.Core.Tables.Workflow.Workflow workflow, CancellationToken cancellationToken);
}