using Dpz.Core.Public.Entity.Seo;

namespace Dpz.Core.Service.RepositoryService;

public interface IPageRouteCatalogService
{
    /// <summary>
    /// 获取页面路由目录。
    /// </summary>
    Task<IList<VmPageRouteDefinition>> GetRoutesAsync(
        bool activeOnly = true,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 校验页面元数据路由是否存在。
    /// </summary>
    Task<PageRouteValidationResult> ValidateRouteAsync(
        PageMetadataRoute route,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 保存 Dpz.Core.Web 启动扫描到的路由目录。
    /// </summary>
    Task SaveScannedRoutesAsync(
        IReadOnlyCollection<VmSavePageRouteDefinition> routes,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 刷新路由目录缓存。
    /// </summary>
    Task RefreshCacheAsync(CancellationToken cancellationToken = default);
}
评论加载中...