using System.Text.Json; using Bit.Infrastructure.EntityFramework.Models; namespace Bit.SeederApi.Services; public interface IRecipeService { /// /// Executes a recipe with the given template name and arguments. /// /// The name of the recipe template (e.g., "OrganizationWithUsersRecipe") /// Optional JSON arguments to pass to the recipe's Seed method /// A tuple containing the result and optional seed ID for tracked entities /// Thrown when the recipe template is not found /// Thrown when there's an error executing the recipe (object? Result, Guid? SeedId) ExecuteRecipe(string templateName, JsonElement? arguments); /// /// Destroys data created by a recipe 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(); }