using System; using System.Collections.Generic; using System.Linq; using Data.Models.Client; using SharedLibraryCore.Interfaces; using InteractionCallback = System.Func, System.Threading.CancellationToken, System.Threading.Tasks.Task>; namespace SharedLibraryCore.Helpers; public class InteractionData : IInteractionData { public int? EntityId { get; set; } public string InteractionId { get; set; } public InteractionType InteractionType { get; set; } public bool Enabled { get; set; } public string Name { get; set; } public string Description { get; set; } public string DisplayMeta { get; set; } public string ActionPath { get; set; } public Dictionary ActionMeta { get; set; } = new(); public string ActionUri => ActionPath + "?" + string.Join('&', ActionMeta.Select(kvp => $"{kvp.Key}={kvp.Value}")); public EFClient.Permission? MinimumPermission { get; set; } public string PermissionEntity { get; set; } = "Interaction"; public string PermissionAccess { get; set; } = "Read"; public string Source { get; set; } public InteractionCallback Action { get; set; } public Delegate ScriptAction { get; set; } }