using XFEToolBox.Core.Tools; using XFEToolBox.Server.Core.Models; namespace XFEToolBox.Server.Core.Services; public interface IToolPackageRepository { Task> ListAsync( bool publishedOnly, CancellationToken cancellationToken = default); Task FindAsync( string toolId, string version, bool publishedOnly, CancellationToken cancellationToken = default); Task FindFileAsync( string toolId, string version, bool publishedOnly, CancellationToken cancellationToken = default); Task SaveAsync( Stream packageStream, bool published, bool overwrite, CancellationToken cancellationToken = default); Task SaveSubmissionAsync( Stream packageStream, string submittedByUserId, string submittedByUserName, CancellationToken cancellationToken = default); Task SetPublishedAsync( string toolId, string version, bool published, CancellationToken cancellationToken = default); Task SetReviewStatusAsync( string toolId, string version, ToolPackageReviewStatus reviewStatus, string reviewedByUserId, string reviewedByUserName, string? reviewMessage = null, CancellationToken cancellationToken = default); }