using StellaOps.Platform.WebService.Contracts;
namespace StellaOps.Platform.WebService.Services;
///
/// Service interface for script CRUD, versioning, and validation.
///
public interface IScriptService
{
Task> SearchAsync(
string tenantId,
ScriptLanguageDto? language,
ScriptVisibilityDto? visibility,
string? search,
int limit,
int offset,
CancellationToken cancellationToken = default);
Task CountAsync(
string tenantId,
ScriptLanguageDto? language,
ScriptVisibilityDto? visibility,
string? search,
CancellationToken cancellationToken = default);
Task GetByIdAsync(
string tenantId,
string scriptId,
CancellationToken cancellationToken = default);
Task CreateAsync(
string tenantId,
string actorId,
CreateScriptApiRequest request,
CancellationToken cancellationToken = default);
Task UpdateAsync(
string tenantId,
string actorId,
string scriptId,
UpdateScriptApiRequest request,
CancellationToken cancellationToken = default);
Task DeleteAsync(
string tenantId,
string scriptId,
CancellationToken cancellationToken = default);
Task> GetVersionsAsync(
string tenantId,
string scriptId,
CancellationToken cancellationToken = default);
Task ValidateAsync(
ValidateScriptApiRequest request,
CancellationToken cancellationToken = default);
Task GetVersionContentAsync(
string tenantId,
string scriptId,
int version,
CancellationToken cancellationToken = default);
Task CheckCompatibilityAsync(
string tenantId,
string scriptId,
CheckCompatibilityRequest request,
CancellationToken cancellationToken = default);
}