namespace DigitalData.Core.Application
{
    /// <summary>
    /// Represents the options for configuring directory search operations.
    /// </summary>
    public class DirectorySearchOptions
    {
        //TODO: Merge with Root and rename as path
        /// <summary>
        /// Gets or initializes the name of the server to be used in the directory search.
        /// </summary>
        public required string ServerName { get; init; }

        /// <summary>
        /// Gets or initializes the root directory path for the search.
        /// </summary>
        public required string Root { get; init; }

        //TODO: Convert to timespan
        /// <summary>
        /// Gets or initializes the number of days before the user cache expires.
        /// </summary>
        public double? UserCacheExpirationDays { get; init; }

        //TODO: Rename as CustomSearchFilters
        /// <summary>
        /// Gets or initializes the custom search filters to be applied during directory searches.
        /// </summary>
        public Dictionary<string, string> CustomSearchFilters { get; init; } = new();
    }
}