namespace Grand.Infrastructure.Caching.Constants
{
    public static partial class CacheKey
    {
        #region Contact attributes

        /// <summary>
        /// Key for caching
        /// </summary>
        /// <remarks>
        /// {0} : store ID
        /// {1} : ignore ACL?
        /// </remarks>
        public static string CONTACTATTRIBUTES_ALL_KEY => "Grand.contactattribute.all-{0}-{1}";

        /// <summary>
        /// Key for caching
        /// </summary>
        /// <remarks>
        /// {0} : contact attribute ID
        /// </remarks>
        public static string CONTACTATTRIBUTES_BY_ID_KEY => "Grand.contactattribute.id-{0}";

        /// <summary>
        /// Key pattern to clear cache
        /// </summary>
        public static string CONTACTATTRIBUTES_PATTERN_KEY => "Grand.contactattribute.";

        /// <summary>
        /// Key pattern to clear cache
        /// </summary>
        public static string CONTACTATTRIBUTEVALUES_PATTERN_KEY => "Grand.contactattributevalue.";

        #endregion

        #region Email account

        /// <summary>
        /// Key for caching
        /// </summary>
        /// <remarks>
        /// {0} : email account ID
        /// </remarks>
        public static string EMAILACCOUNT_BY_ID_KEY =>"Grand.emailaccount.id-{0}";

        /// <summary>
        /// Key for caching
        /// </summary>
        /// <remarks>
        /// </remarks>
        public static string EMAILACCOUNT_ALL_KEY => "Grand.emailaccount.all";

        /// <summary>
        /// Key pattern to clear cache
        /// </summary>
        public static string EMAILACCOUNT_PATTERN_KEY => "Grand.emailaccount.";

        #endregion

        #region Message template

        /// <summary>
        /// Key for caching
        /// </summary>
        /// <remarks>
        /// {0} : store ID
        /// </remarks>
        public static string MESSAGETEMPLATES_ALL_KEY => "Grand.messagetemplate.all-{0}";

        /// <summary>
        /// Key for caching
        /// </summary>
        /// <remarks>
        /// {0} : template name
        /// {1} : store ID
        /// </remarks>
        public static string MESSAGETEMPLATES_BY_NAME_KEY => "Grand.messagetemplate.name-{0}-{1}";

        /// <summary>
        /// Key pattern to clear cache
        /// </summary>
        public static string MESSAGETEMPLATES_PATTERN_KEY => "Grand.messagetemplate.";

        #endregion
    }
}
