using PSLauncher.Core.ReportTool;

namespace PSLauncher.Core.DocTool;

/// <summary>
/// Déploie l'outil Documentation (page web hébergée dans XAMPP) depuis le
/// sous-dossier <c>_doc/</c> bundled dans chaque ZIP PROSERVE vers le htdocs
/// local. Mêmes garanties que <see cref="IReportToolDeployer"/> : copy + atomic
/// rename + backups horodatés + revert manuel.
///
/// On réutilise les types <see cref="DeployResult"/>, <see cref="DeployStatus"/>,
/// <see cref="DeployProgress"/> et <see cref="BackupInfo"/> du namespace ReportTool
/// pour ne pas dupliquer la modélisation — le mécanisme est strictement le même.
/// </summary>
public interface IDocToolDeployer
{
    Task<DeployResult> DeployAsync(
        string installFolder,
        IProgress<DeployProgress>? progress,
        CancellationToken ct);

    Task<IReadOnlyList<BackupInfo>> ListBackupsAsync(CancellationToken ct);

    Task<DeployResult> RevertAsync(string backupFolderName, CancellationToken ct);
}
