using System.Globalization;
using Umbraco.Core.Models;

namespace Umbraco.Core.Strings
{
    /// <summary>
    /// Provides url segments for content.
    /// </summary>
    /// <remarks>Url segments should comply with IETF RFCs regarding content, encoding, etc.</remarks>
    public interface IUrlSegmentProvider
    {
        /// <summary>
        /// Gets the default url segment for a specified content.
        /// </summary>
        /// <param name="content">The content.</param>
        /// <returns>The url segment.</returns>
        string GetUrlSegment(IContentBase content);

        /// <summary>
        /// Gets the url segment for a specified content and culture.
        /// </summary>
        /// <param name="content">The content.</param>
        /// <param name="culture">The culture.</param>
        /// <returns>The url segment.</returns>
        /// <remarks>This is for when Umbraco is capable of managing more than one url
        /// per content, in 1-to-1 multilingual configurations. Then there would be one
        /// url per culture.</remarks>
        string GetUrlSegment(IContentBase content, CultureInfo culture);
    }
}
