namespace Nop.Services.Common;

/// <summary>
/// Represents default links values
/// </summary>
public static partial class NopLinksDefaults
{
    /// <summary>
    /// Represents default values of the official site URLs
    /// </summary>
    public static partial class OfficialSite
    {
        /// <summary>
        /// Gets the main site page
        /// </summary>
        public static string Main => "https://www.nopcommerce.com/";

        /// <summary>
        /// Gets the boards page
        /// </summary>
        public static string Boards => "https://www.nopcommerce.com/boards/";

        /// <summary>
        /// Gets the translations page
        /// </summary>
        public static string Translations => "https://www.nopcommerce.com/translations/";

        /// <summary>
        /// Gets the copyright removal key page
        /// </summary>
        public static string CopyrightRemovalKey => "https://www.nopcommerce.com/nopcommerce-copyright-removal-key";

        /// <summary>
        /// Gets the premium support services page
        /// </summary>
        public static string PremiumSupportServices => "https://www.nopcommerce.com/nopcommerce-premium-support-services";

        /// <summary>
        /// Gets the marketplace page
        /// </summary>
        public static string Marketplace => "https://www.nopcommerce.com/marketplace/";

        /// <summary>
        /// Gets the payment plugins page
        /// </summary>
        public static string PaymentPlugins => "https://www.nopcommerce.com/en/marketplace/?category=payment-modules";

        /// <summary>
        /// Gets the shipping plugins page
        /// </summary>
        public static string ShippingPlugins => "https://www.nopcommerce.com/en/marketplace/?category=shipping-delivery";

        /// <summary>
        /// Gets the tax plugins page
        /// </summary>
        public static string TaxPlugins => "https://www.nopcommerce.com/en/marketplace/?category=taxes";

        /// <summary>
        /// Gets the themes page
        /// </summary>
        public static string Themes => "https://www.nopcommerce.com/themes/";

        /// <summary>
        /// Gets the states and provinces package page
        /// </summary>
        public static string StatesPackage => "https://www.nopcommerce.com/all-states-provinces-package-nopcommerce-team/";
    }

    /// <summary>
    /// Represents default values of the docs site URLs
    /// </summary>
    public static partial class Docs
    {
        /// <summary>
        /// Gets a URL of the main docs page
        /// </summary>
        public static string Main => "https://docs.nopcommerce.com/";

        /// <summary>
        /// Gets a URL of the Products docs page
        /// </summary>
        public static string Products => "https://docs.nopcommerce.com/running-your-store/catalog/products/index.html";

        /// <summary>
        /// Gets a URL of the Categories docs page
        /// </summary>
        public static string Categories => "https://docs.nopcommerce.com/running-your-store/catalog/categories.html";

        /// <summary>
        /// Gets a URL of the manufacturers docs page
        /// </summary>
        public static string Manufacturers => "https://docs.nopcommerce.com/running-your-store/catalog/manufacturers.html";

        /// <summary>
        /// Gets a URL of the product reviews docs page
        /// </summary>
        public static string ProductReviews => "https://docs.nopcommerce.com/running-your-store/catalog/products/product-reviews.html";

        /// <summary>
        /// Gets a URL of the product tags docs page
        /// </summary>
        public static string ProductTags => "https://docs.nopcommerce.com/running-your-store/catalog/products/product-tags.html";

        /// <summary>
        /// Gets a URL of the product attributes docs page
        /// </summary>
        public static string ProductAttributes => "https://docs.nopcommerce.com/running-your-store/catalog/products/product-attributes.html";

        /// <summary>
        /// Gets a URL of the specification attributes docs page
        /// </summary>
        public static string SpecificationAttributes => "https://docs.nopcommerce.com/running-your-store/catalog/products/specification-attributes.html";

        /// <summary>
        /// Gets a URL of the checkout attributes docs page
        /// </summary>
        public static string CheckoutAttributes => "https://docs.nopcommerce.com/running-your-store/order-management/checkout-attributes.html";

        /// <summary>
        /// Gets a URL of the orders docs page
        /// </summary>
        public static string Orders => "https://docs.nopcommerce.com/running-your-store/order-management/orders.html";

        /// <summary>
        /// Gets a URL of the shipping management docs page
        /// </summary>
        public static string ShippingManagement => "https://docs.nopcommerce.com/running-your-store/order-management/shipping-management.html";

        /// <summary>
        /// Gets a URL of the return requests docs page
        /// </summary>
        public static string ReturnRequests => "https://docs.nopcommerce.com/running-your-store/order-management/return-requests.html";

        /// <summary>
        /// Gets a URL of the recurring payments docs page
        /// </summary>
        public static string RecurringPayments => "https://docs.nopcommerce.com/running-your-store/catalog/products/recurring-products.html";

        /// <summary>
        /// Gets a URL of the shopping carts and wishlists docs page
        /// </summary>
        public static string ShoppingCartsAndWishlists => "https://docs.nopcommerce.com/running-your-store/order-management/shopping-carts-and-wishlists.html";

        /// <summary>
        /// Gets a URL of the gift cards docs page
        /// </summary>
        public static string GiftCards => "https://docs.nopcommerce.com/running-your-store/promotional-tools/gift-cards.html";

        /// <summary>
        /// Gets a URL of the customers docs page
        /// </summary>
        public static string Customers => "https://docs.nopcommerce.com/running-your-store/customer-management/managing-customers.html";

        /// <summary>
        /// Gets a URL of the customer roles docs page
        /// </summary>
        public static string CustomerRoles => "https://docs.nopcommerce.com/running-your-store/customer-management/customer-roles.html";

        /// <summary>
        /// Gets a URL of the online customers docs page
        /// </summary>
        public static string OnlineCustomers => "https://docs.nopcommerce.com/running-your-store/customer-management/online-customers.html";

        /// <summary>
        /// Gets a URL of the vendor management docs page
        /// </summary>
        public static string VendorManagement => "https://docs.nopcommerce.com/running-your-store/vendor-management.html";

        /// <summary>
        /// Gets a URL of the activity log docs page
        /// </summary>
        public static string ActivityLog => "https://docs.nopcommerce.com/running-your-store/customer-management/activity-log.html";

        /// <summary>
        /// Gets a URL of the GDPR docs page
        /// </summary>
        public static string Gdpr => "https://docs.nopcommerce.com/getting-started/advanced-configuration/gdpr-settings.html";

        /// <summary>
        /// Gets a URL of the discounts docs page
        /// </summary>
        public static string Discounts => "https://docs.nopcommerce.com/running-your-store/promotional-tools/discounts.html";

        /// <summary>
        /// Gets a URL of the affiliates docs page
        /// </summary>
        public static string Affiliates => "https://docs.nopcommerce.com/running-your-store/promotional-tools/affiliates.html";

        /// <summary>
        /// Gets a URL of the email campaigns docs page
        /// </summary>
        public static string EmailCampaigns => "https://docs.nopcommerce.com/running-your-store/promotional-tools/email-campaigns.html";

        /// <summary>
        /// Gets a URL of the topics and pages docs page
        /// </summary>
        public static string TopicsPages => "https://docs.nopcommerce.com/running-your-store/content-management/topics-pages.html";

        /// <summary>
        /// Gets a URL of the message templates docs page
        /// </summary>
        public static string MessageTemplates => "https://docs.nopcommerce.com/running-your-store/content-management/message-templates.html";

        /// <summary>
        /// Gets a URL of the news docs page
        /// </summary>
        public static string News => "https://docs.nopcommerce.com/running-your-store/content-management/news.html";

        /// <summary>
        /// Gets a URL of the blog docs page
        /// </summary>
        public static string Blog => "https://docs.nopcommerce.com/running-your-store/content-management/blog.html";

        /// <summary>
        /// Gets a URL of the polls docs page
        /// </summary>
        public static string Polls => "https://docs.nopcommerce.com/running-your-store/content-management/polls.html";

        /// <summary>
        /// Gets a URL of the forums docs page
        /// </summary>
        public static string Forums => "https://docs.nopcommerce.com/running-your-store/content-management/forums.html";

        /// <summary>
        /// Gets a URL of the email accounts docs page
        /// </summary>
        public static string EmailAccounts => "https://docs.nopcommerce.com/getting-started/email-accounts.html";

        /// <summary>
        /// Gets a URL of the multistore docs page
        /// </summary>
        public static string MultiStore => "https://docs.nopcommerce.com/getting-started/advanced-configuration/multi-store.html";

        /// <summary>
        /// Gets a URL of the countries and states docs page
        /// </summary>
        public static string CountriesStates => "https://docs.nopcommerce.com/getting-started/configure-shipping/advanced-configuration/countries-states.html";

        /// <summary>
        /// Gets a URL of the localization docs page
        /// </summary>
        public static string Localization => "https://docs.nopcommerce.com/getting-started/advanced-configuration/localization.html";

        /// <summary>
        /// Gets a URL of the currencies docs page
        /// </summary>
        public static string Currencies => "https://docs.nopcommerce.com/getting-started/configure-payments/advanced-configuration/currencies.html";

        /// <summary>
        /// Gets a URL of the payment methods docs page
        /// </summary>
        public static string PaymentMethods => "https://docs.nopcommerce.com/getting-started/configure-payments/payment-methods/index.html";

        /// <summary>
        /// Gets a URL of the payment method restrictions docs page
        /// </summary>
        public static string PaymentMethodRestrictions => "https://docs.nopcommerce.com/getting-started/configure-payments/advanced-configuration/payment-method-restrictions.html";

        /// <summary>
        /// Gets a URL of the tax providers docs page
        /// </summary>
        public static string TaxProviders => "https://docs.nopcommerce.com/getting-started/configure-taxes/tax-providers/index.html";

        /// <summary>
        /// Gets a URL of the shipping providers docs page
        /// </summary>
        public static string ShippingProviders => "https://docs.nopcommerce.com/getting-started/configure-shipping/shipping-providers/index.html";

        /// <summary>
        /// Gets a URL of the warehouses docs page
        /// </summary>
        public static string Warehouses => "https://docs.nopcommerce.com/getting-started/configure-shipping/advanced-configuration/warehouses.html";

        /// <summary>
        /// Gets a URL of the pickup points docs page
        /// </summary>
        public static string PickupPoints => "https://docs.nopcommerce.com/getting-started/configure-shipping/advanced-configuration/pickup-points.html";

        /// <summary>
        /// Gets a URL of the dates and ranges docs page
        /// </summary>
        public static string DatesAndRanges => "https://docs.nopcommerce.com/getting-started/configure-shipping/advanced-configuration/dates-and-ranges.html";

        /// <summary>
        /// Gets a URL of the measures docs page
        /// </summary>
        public static string Measures => "https://docs.nopcommerce.com/getting-started/configure-shipping/advanced-configuration/measures.html";

        /// <summary>
        /// Gets a URL of the ACL docs page
        /// </summary>
        public static string Acl => "https://docs.nopcommerce.com/running-your-store/customer-management/access-control-list.html";

        /// <summary>
        /// Gets a URL of the external authentication docs page
        /// </summary>
        public static string ExternalAuthentication => "https://docs.nopcommerce.com/getting-started/advanced-configuration/external-authentication-methods.html";

        /// <summary>
        /// Gets a URL of the plugins docs page
        /// </summary>
        public static string Plugins => "https://docs.nopcommerce.com/getting-started/advanced-configuration/plugins-in-nopcommerce.html";

        /// <summary>
        /// Gets a URL of the log docs page
        /// </summary>
        public static string Log => "https://docs.nopcommerce.com/running-your-store/system-administration/log.html";

        /// <summary>
        /// Gets a URL of the maintenance docs page
        /// </summary>
        public static string Maintenance => "https://docs.nopcommerce.com/running-your-store/system-administration/maintenance.html";

        /// <summary>
        /// Gets a URL of the message queue docs page
        /// </summary>
        public static string MessageQueue => "https://docs.nopcommerce.com/running-your-store/system-administration/message-queue.html";

        /// <summary>
        /// Gets a URL of the schedule tasks docs page
        /// </summary>
        public static string ScheduleTasks => "https://docs.nopcommerce.com/running-your-store/system-administration/schedule-tasks.html";

        /// <summary>
        /// Gets a URL of the SEO optimization docs page
        /// </summary>
        public static string SeoOptimization => "https://docs.nopcommerce.com/running-your-store/search-engine-optimization.html";

        /// <summary>
        /// Gets a URL of the templates docs page
        /// </summary>
        public static string Templates => "https://docs.nopcommerce.com/running-your-store/system-administration/templates.html";

        /// <summary>
        /// Gets a URL of the reports docs page
        /// </summary>
        public static string Reports => "https://docs.nopcommerce.com/running-your-store/reports.html";

        /// <summary>
        /// Gets a URL of the tax management docs page
        /// </summary>
        public static string TaxManagement => "https://docs.nopcommerce.com/getting-started/configure-taxes/index.html";

        /// <summary>
        /// Gets a URL of the app settings docs page
        /// </summary>
        public static string AppSettings => " https://docs.nopcommerce.com/en/developer/tutorials/appsettings-json-file.html";

        /// <summary>
        /// Gets a URL of the themes docs page
        /// </summary>
        public static string Themes => "https://docs.nopcommerce.com/getting-started/design-your-store/choose-and-install-a-theme.html";

        /// <summary>
        /// Gets a URL of the SSL install docs page
        /// </summary>
        public static string SslInstall => "https://docs.nopcommerce.com/getting-started/advanced-configuration/how-to-install-and-configure-ssl-certification.html";

        /// <summary>
        /// Gets a URL of the PayPal docs page
        /// </summary>
        public static string PayPal => "https://docs.nopcommerce.com/getting-started/configure-payments/payment-methods/paypal-commerce.html";

        /// <summary>
        /// Gets a URL of the Avalara docs page
        /// </summary>
        public static string Avalara => "https://docs.nopcommerce.com/getting-started/configure-taxes/tax-providers/avalara.html";
    }

    /// <summary>
    /// Represents default values of the UTM parameters
    /// </summary>
    public static partial class Utm
    {
        /// <summary>
        /// Gets parameters used on admin area
        /// </summary>
        public static string OnAdmin => "?utm_source=admin-panel&utm_medium=admin-page&utm_campaign=documentation&utm_content=doc-reference";

        /// <summary>
        /// Gets parameters used on admin area tour
        /// </summary>
        public static string OnAdminTour => "?utm_source=admin-panel&utm_medium=tour&utm_campaign=marketplace&utm_content=tooltip";

        /// <summary>
        /// Gets parameters used on admin area tour
        /// </summary>
        public static string OnAdminTourDocs => "?utm_source=admin-panel&utm_medium=tour&utm_campaign=documentation&utm_content=tooltip";

        /// <summary>
        /// Gets parameters used on admin area log
        /// </summary>
        public static string OnAdminLog => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=premium_support&utm_content=log-details";

        /// <summary>
        /// Gets parameters used on admin area log list
        /// </summary>
        public static string OnAdminLogList => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=premium_support&utm_content=log-list";

        /// <summary>
        /// Gets parameters used on admin area footer
        /// </summary>
        public static string OnAdminFooter => "?utm_source=admin-panel&utm_medium=footer&utm_campaign=admin-panel";

        /// <summary>
        /// Gets parameters used on admin area countries page
        /// </summary>
        public static string OnAdminCountries => "?utm_source=admin-panel&utm_medium=countries&utm_campaign=admin-panel";

        /// <summary>
        /// Gets parameters used on admin area all plugins page
        /// </summary>
        public static string OnAdminAllPlugins => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=marketplace&utm_content=all-plugins";

        /// <summary>
        /// Gets parameters used on admin area plugins feed page
        /// </summary>
        public static string OnAdminPluginsFeed => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=marketplace&utm_content=official-plugins";

        /// <summary>
        /// Gets parameters used on admin area 'choose a theme' page
        /// </summary>
        public static string OnAdminThemes => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=marketplace&utm_content=general-common-theme";

        /// <summary>
        /// Gets parameters used on admin area payment plugins page
        /// </summary>
        public static string OnAdminPaymentPlugins => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=marketplace&utm_content=payment-plugins";

        /// <summary>
        /// Gets parameters used on admin area shipping plugins page
        /// </summary>
        public static string OnAdminShippingPlugins => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=marketplace&utm_content=shipping-plugins";

        /// <summary>
        /// Gets parameters used on admin area tax plugins page
        /// </summary>
        public static string OnAdminTaxPlugins => "?utm_source=admin-panel&utm_medium=menu&utm_campaign=marketplace&utm_content=tax-plugins";

        /// <summary>
        /// Gets parameters used on install
        /// </summary>
        public static string OnInstall => "?utm_source=installation-page&utm_medium=footer&utm_campaign=installation-page";

        /// <summary>
        /// Gets parameters used on admin area configuration steps block
        /// </summary>
        public static string OnAdminConfigurationSteps => "?utm_source=admin-panel&utm_medium=tour&utm_campaign=powered_by_nopcommerce&utm_content=dashboard";
    }
}