using System.Text.Json; using Bit.Infrastructure.EntityFramework.Models; using Bit.SeederApi.Models.Response; namespace Bit.SeederApi.Services; public interface ISeedService { /// /// Executes a scene with the given template name and arguments. /// /// The name of the scene template (e.g., "SingleUserScene") /// Optional JSON arguments to pass to the scene's Seed method /// A tuple containing the result and optional seed ID for tracked entities /// Thrown when the scene template is not found /// Thrown when there's an error executing the scene SceneResponseModel ExecuteScene(string templateName, JsonElement? arguments); /// /// Destroys data created by a scene using the seeded data ID. /// /// The ID of the seeded data to destroy /// The result of the destroy operation /// Thrown when there's an error destroying the seeded data Task DestroyRecipe(Guid seedId); List GetAllSeededData(); /// /// Executes a query with the given query name and arguments. /// Queries are read-only and do not track entities or create seed IDs. /// /// The name of the query (e.g., "EmergencyAccessInviteQuery") /// Optional JSON arguments to pass to the query's Execute method /// The result of the query execution /// Thrown when the query is not found /// Thrown when there's an error executing the query object ExecuteQuery(string queryName, JsonElement? arguments); }