using Bit.Core.Enums; using Bit.Core.Models.StaticStore; using System.Collections.Generic; namespace Bit.Core.Utilities { public class StaticStore { static StaticStore() { #region Global Domains GlobalDomains = new Dictionary>(); GlobalDomains.Add(GlobalEquivalentDomainsType.Ameritrade, new List { "ameritrade.com", "tdameritrade.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.BoA, new List { "bankofamerica.com", "bofa.com", "mbna.com", "usecfo.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Sprint, new List { "sprint.com", "sprintpcs.com", "nextel.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Google, new List { "youtube.com", "google.com", "gmail.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Apple, new List { "apple.com", "icloud.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.WellsFargo, new List { "wellsfargo.com", "wf.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Merrill, new List { "mymerrill.com", "ml.com", "merrilledge.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Citi, new List { "accountonline.com", "citi.com", "citibank.com", "citicards.com", "citibankonline.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Cnet, new List { "cnet.com", "cnettv.com", "com.com", "download.com", "news.com", "search.com", "upload.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Gap, new List { "bananarepublic.com", "gap.com", "oldnavy.com", "piperlime.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Microsoft, new List { "bing.com", "hotmail.com", "live.com", "microsoft.com", "msn.com", "passport.net", "windows.com", "microsoftonline.com", "office.com", "office365.com", "microsoftstore.com", "xbox.com", "azure.com", "windowsazure.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.United, new List { "ua2go.com", "ual.com", "united.com", "unitedwifi.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Yahoo, new List { "overture.com", "yahoo.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Zonelabs, new List { "zonealarm.com", "zonelabs.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.PayPal, new List { "paypal.com", "paypal-search.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Avon, new List { "avon.com", "youravon.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Diapers, new List { "diapers.com", "soap.com", "wag.com", "yoyo.com", "beautybar.com", "casa.com", "afterschool.com", "vine.com", "bookworm.com", "look.com", "vinemarket.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Contacts, new List { "1800contacts.com", "800contacts.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Amazon, new List { "amazon.com", "amazon.ae", "amazon.ca", "amazon.co.uk", "amazon.com.au", "amazon.com.br", "amazon.com.mx", "amazon.com.tr", "amazon.de", "amazon.es", "amazon.fr", "amazon.in", "amazon.it", "amazon.nl", "amazon.sa", "amazon.sg", "amazon.co.nz" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Cox, new List { "cox.com", "cox.net", "coxbusiness.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Norton, new List { "mynortonaccount.com", "norton.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Verizon, new List { "verizon.com", "verizon.net" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Buy, new List { "rakuten.com", "buy.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Sirius, new List { "siriusxm.com", "sirius.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Ea, new List { "ea.com", "origin.com", "play4free.com", "tiberiumalliance.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Basecamp, new List { "37signals.com", "basecamp.com", "basecamphq.com", "highrisehq.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Steam, new List { "steampowered.com", "steamcommunity.com", "steamgames.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Chart, new List { "chart.io", "chartio.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Gotomeeting, new List { "gotomeeting.com", "citrixonline.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Gogo, new List { "gogoair.com", "gogoinflight.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Oracle, new List { "mysql.com", "oracle.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Discover, new List { "discover.com", "discovercard.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Dcu, new List { "dcu.org", "dcu-online.org" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Healthcare, new List { "healthcare.gov", "cms.gov" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Pepco, new List { "pepco.com", "pepcoholdings.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Century21, new List { "century21.com", "21online.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Comcast, new List { "comcast.com", "comcast.net", "xfinity.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Cricket, new List { "cricketwireless.com", "aiowireless.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Mtb, new List { "mandtbank.com", "mtb.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Dropbox, new List { "dropbox.com", "getdropbox.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Snapfish, new List { "snapfish.com", "snapfish.ca" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Alibaba, new List { "alibaba.com", "aliexpress.com", "aliyun.com", "net.cn" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Playstation, new List { "playstation.com", "sonyentertainmentnetwork.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Mercado, new List { "mercadolivre.com", "mercadolivre.com.br", "mercadolibre.com", "mercadolibre.com.ar", "mercadolibre.com.mx" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Zendesk, new List { "zendesk.com", "zopim.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Autodesk, new List { "autodesk.com", "tinkercad.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.RailNation, new List { "railnation.ru", "railnation.de", "rail-nation.com", "railnation.gr", "railnation.us", "trucknation.de", "traviangames.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Wpcu, new List { "wpcu.coop", "wpcuonline.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Mathletics, new List { "mathletics.com", "mathletics.com.au", "mathletics.co.uk" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Discountbank, new List { "discountbank.co.il", "telebank.co.il" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Mi, new List { "mi.com", "xiaomi.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Postepay, new List { "postepay.it", "poste.it" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Facebook, new List { "facebook.com", "messenger.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Skysports, new List { "skysports.com", "skybet.com", "skyvegas.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Disney, new List { "disneymoviesanywhere.com", "go.com", "disney.com", "dadt.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Pokemon, new List { "pokemon-gl.com", "pokemon.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Uv, new List { "myuv.com", "uvvu.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Mdsol, new List { "mdsol.com", "imedidata.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Yahavo, new List { "bank-yahav.co.il", "bankhapoalim.co.il" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Sears, new List { "sears.com", "shld.net" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Xiami, new List { "xiami.com", "alipay.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Belkin, new List { "belkin.com", "seedonk.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Turbotax, new List { "turbotax.com", "intuit.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Shopify, new List { "shopify.com", "myshopify.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Ebay, new List { "ebay.com", "ebay.at", "ebay.be", "ebay.ca", "ebay.ch", "ebay.cn", "ebay.co.jp", "ebay.co.th", "ebay.co.uk", "ebay.com.au", "ebay.com.hk", "ebay.com.my", "ebay.com.sg", "ebay.com.tw", "ebay.de", "ebay.es", "ebay.fr", "ebay.ie", "ebay.in", "ebay.it", "ebay.nl", "ebay.ph", "ebay.pl" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Techdata, new List { "techdata.com", "techdata.ch" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Schwab, new List { "schwab.com", "schwabplan.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Tesla, new List { "tesla.com", "teslamotors.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.MorganStanley, new List { "morganstanley.com", "morganstanleyclientserv.com", "stockplanconnect.com", "ms.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.TaxAct, new List { "taxact.com", "taxactonline.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Wikimedia, new List { "mediawiki.org", "wikibooks.org", "wikidata.org", "wikimedia.org", "wikinews.org", "wikipedia.org", "wikiquote.org", "wikisource.org", "wikiversity.org", "wikivoyage.org", "wiktionary.org" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Airbnb, new List { "airbnb.at", "airbnb.be", "airbnb.ca", "airbnb.ch", "airbnb.cl", "airbnb.co.cr", "airbnb.co.id", "airbnb.co.in", "airbnb.co.kr", "airbnb.co.nz", "airbnb.co.uk", "airbnb.co.ve", "airbnb.com", "airbnb.com.ar", "airbnb.com.au", "airbnb.com.bo", "airbnb.com.br", "airbnb.com.bz", "airbnb.com.co", "airbnb.com.ec", "airbnb.com.gt", "airbnb.com.hk", "airbnb.com.hn", "airbnb.com.mt", "airbnb.com.my", "airbnb.com.ni", "airbnb.com.pa", "airbnb.com.pe", "airbnb.com.py", "airbnb.com.sg", "airbnb.com.sv", "airbnb.com.tr", "airbnb.com.tw", "airbnb.cz", "airbnb.de", "airbnb.dk", "airbnb.es", "airbnb.fi", "airbnb.fr", "airbnb.gr", "airbnb.gy", "airbnb.hu", "airbnb.ie", "airbnb.is", "airbnb.it", "airbnb.jp", "airbnb.mx", "airbnb.nl", "airbnb.no", "airbnb.pl", "airbnb.pt", "airbnb.ru", "airbnb.se" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Eventbrite, new List { "eventbrite.at", "eventbrite.be", "eventbrite.ca", "eventbrite.ch", "eventbrite.cl", "eventbrite.co", "eventbrite.co.nz", "eventbrite.co.uk", "eventbrite.com", "eventbrite.com.ar", "eventbrite.com.au", "eventbrite.com.br", "eventbrite.com.mx", "eventbrite.com.pe", "eventbrite.de", "eventbrite.dk", "eventbrite.es", "eventbrite.fi", "eventbrite.fr", "eventbrite.hk", "eventbrite.ie", "eventbrite.it", "eventbrite.nl", "eventbrite.pt", "eventbrite.se", "eventbrite.sg" }); GlobalDomains.Add(GlobalEquivalentDomainsType.StackExchange, new List { "stackexchange.com", "superuser.com", "stackoverflow.com", "serverfault.com", "mathoverflow.net", "askubuntu.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Docusign, new List { "docusign.com", "docusign.net" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Envato, new List { "envato.com", "themeforest.net", "codecanyon.net", "videohive.net", "audiojungle.net", "graphicriver.net", "photodune.net", "3docean.net" }); GlobalDomains.Add(GlobalEquivalentDomainsType.X10Hosting, new List { "x10hosting.com", "x10premium.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Cisco, new List { "dnsomatic.com", "opendns.com", "umbrella.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.CedarFair, new List { "cagreatamerica.com", "canadaswonderland.com", "carowinds.com", "cedarfair.com", "cedarpoint.com", "dorneypark.com", "kingsdominion.com", "knotts.com", "miadventure.com", "schlitterbahn.com", "valleyfair.com", "visitkingsisland.com", "worldsoffun.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Ubiquiti, new List { "ubnt.com", "ui.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Discord, new List { "discordapp.com", "discord.com" }); GlobalDomains.Add(GlobalEquivalentDomainsType.Netcup, new List { "netcup.de", "netcup.eu", "customercontrolpanel.de" }); #endregion #region Plans Plans = new List { new Plan { Type = PlanType.Free, Product = ProductType.Free, Name = "Free", NameLocalizationKey = "planNameFree", DescriptionLocalizationKey = "planDescFree", BaseSeats = 2, MaxCollections = 2, MaxUsers = 2, UpgradeSortOrder = -1, // Always the lowest plan, cannot be upgraded to DisplaySortOrder = -1 }, new Plan { Type = PlanType.FamiliesAnnually2019, Product = ProductType.Families, Name = "Families 2019", IsAnnual = true, NameLocalizationKey = "planNameFamilies", DescriptionLocalizationKey = "planDescFamilies", BaseSeats = 6, BaseStorageGb = 1, MaxUsers = 6, HasAdditionalStorageOption = true, HasPremiumAccessOption = true, TrialPeriodDays = 7, HasSelfHost = true, HasTotp = true, UpgradeSortOrder = 1, DisplaySortOrder = 1, LegacyYear = 2020, StripePlanId = "personal-org-annually", StripeStoragePlanId = "storage-gb-annually", StripePremiumAccessPlanId = "personal-org-premium-access-annually", BasePrice = 12, AdditionalStoragePricePerGb = 4, PremiumAccessOptionPrice = 40 }, new Plan { Type = PlanType.TeamsAnnually2019, Product = ProductType.Teams, Name = "Teams (Annually) 2019", IsAnnual = true, NameLocalizationKey = "planNameTeams", DescriptionLocalizationKey = "planDescTeams", CanBeUsedByBusiness = true, BaseSeats = 6, BaseStorageGb = 1, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasTotp = true, UpgradeSortOrder = 2, DisplaySortOrder = 2, LegacyYear = 2020, StripePlanId = "teams-org-annually", StripeSeatPlanId = "teams-org-seat-annually", StripeStoragePlanId = "storage-gb-annually", BasePrice = 60, SeatPrice = 24, AdditionalStoragePricePerGb = 4 }, new Plan { Type = PlanType.TeamsMonthly2019, Product = ProductType.Teams, Name = "Teams (Monthly) 2019", NameLocalizationKey = "planNameTeams", DescriptionLocalizationKey = "planDescTeams", CanBeUsedByBusiness = true, BaseSeats = 6, BaseStorageGb = 1, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasTotp = true, UpgradeSortOrder = 2, DisplaySortOrder = 2, LegacyYear = 2020, StripePlanId = "teams-org-monthly", StripeSeatPlanId = "teams-org-seat-monthly", StripeStoragePlanId = "storage-gb-monthly", BasePrice = 8, SeatPrice = 2.5M, AdditionalStoragePricePerGb = 0.5M }, new Plan { Type = PlanType.EnterpriseAnnually2019, Name = "Enterprise (Annually) 2019", IsAnnual = true, Product = ProductType.Enterprise, NameLocalizationKey = "planNameEnterprise", DescriptionLocalizationKey = "planDescEnterprise", CanBeUsedByBusiness = true, BaseSeats = 0, BaseStorageGb = 1, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasPolicies = true, HasSelfHost = true, HasGroups = true, HasDirectory = true, HasEvents = true, HasTotp = true, Has2fa = true, HasApi = true, UsersGetPremium = true, UpgradeSortOrder = 3, DisplaySortOrder = 3, LegacyYear = 2020, StripePlanId = null, StripeSeatPlanId = "enterprise-org-seat-annually", StripeStoragePlanId = "storage-gb-annually", BasePrice = 0, SeatPrice = 36, AdditionalStoragePricePerGb = 4 }, new Plan { Type = PlanType.EnterpriseMonthly2019, Product = ProductType.Enterprise, Name = "Enterprise (Monthly) 2019", NameLocalizationKey = "planNameEnterprise", DescriptionLocalizationKey = "planDescEnterprise", CanBeUsedByBusiness = true, BaseSeats = 0, BaseStorageGb = 1, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasPolicies = true, HasGroups = true, HasDirectory = true, HasEvents = true, HasTotp = true, Has2fa = true, HasApi = true, HasSelfHost = true, UsersGetPremium = true, UpgradeSortOrder = 3, DisplaySortOrder = 3, LegacyYear = 2020, StripePlanId = null, StripeSeatPlanId = "enterprise-org-seat-monthly", StripeStoragePlanId = "storage-gb-monthly", BasePrice = 0, SeatPrice = 4M, AdditionalStoragePricePerGb = 0.5M }, new Plan { Type = PlanType.FamiliesAnnually, Product = ProductType.Families, Name = "Families", IsAnnual = true, NameLocalizationKey = "planNameFamilies", DescriptionLocalizationKey = "planDescFamilies", BaseSeats = 6, BaseStorageGb = 1, MaxUsers = 6, TrialPeriodDays = 7, HasSelfHost = true, HasTotp = true, UsersGetPremium = true, UpgradeSortOrder = 1, DisplaySortOrder = 1, StripePlanId = "personal-org-annually", StripeStoragePlanId = "storage-gb-annually", BasePrice = 40, AdditionalStoragePricePerGb = 4 }, new Plan { Type = PlanType.TeamsAnnually, Product = ProductType.Teams, Name = "Teams (Annually)", IsAnnual = true, NameLocalizationKey = "planNameTeams", DescriptionLocalizationKey = "planDescTeams", CanBeUsedByBusiness = true, BaseStorageGb = 1, BaseSeats = 0, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasTotp = true, UsersGetPremium = true, UpgradeSortOrder = 2, DisplaySortOrder = 2, StripeSeatPlanId = "2020-teams-org-seat-annually", StripeStoragePlanId = "storage-gb-annually", SeatPrice = 36, AdditionalStoragePricePerGb = 4 }, new Plan { Type = PlanType.TeamsMonthly, Product = ProductType.Teams, Name = "Teams (Monthly)", NameLocalizationKey = "planNameTeams", DescriptionLocalizationKey = "planDescTeams", CanBeUsedByBusiness = true, BaseStorageGb = 1, BaseSeats = 0, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasTotp = true, UsersGetPremium = true, UpgradeSortOrder = 2, DisplaySortOrder = 2, StripeSeatPlanId = "2020-teams-org-seat-monthly", StripeStoragePlanId = "storage-gb-monthly", SeatPrice = 4, AdditionalStoragePricePerGb = 0.5M }, new Plan { Type = PlanType.EnterpriseAnnually, Name = "Enterprise (Annually)", Product = ProductType.Enterprise, IsAnnual = true, NameLocalizationKey = "planNameEnterprise", DescriptionLocalizationKey = "planDescEnterprise", CanBeUsedByBusiness = true, BaseSeats = 0, BaseStorageGb = 1, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasPolicies = true, HasSelfHost = true, HasGroups = true, HasDirectory = true, HasEvents = true, HasTotp = true, Has2fa = true, HasApi = true, HasSso = true, UsersGetPremium = true, UpgradeSortOrder = 3, DisplaySortOrder = 3, StripeSeatPlanId = "2020-enterprise-org-seat-annually", StripeStoragePlanId = "storage-gb-annually", BasePrice = 0, SeatPrice = 60, AdditionalStoragePricePerGb = 4 }, new Plan { Type = PlanType.EnterpriseMonthly, Product = ProductType.Enterprise, Name = "Enterprise (Monthly)", NameLocalizationKey = "planNameEnterprise", DescriptionLocalizationKey = "planDescEnterprise", CanBeUsedByBusiness = true, BaseSeats = 0, BaseStorageGb = 1, HasAdditionalSeatsOption = true, HasAdditionalStorageOption = true, TrialPeriodDays = 7, HasPolicies = true, HasGroups = true, HasDirectory = true, HasEvents = true, HasTotp = true, Has2fa = true, HasApi = true, HasSelfHost = true, HasSso = true, UsersGetPremium = true, UpgradeSortOrder = 3, DisplaySortOrder = 3, StripeSeatPlanId = "2020-enterprise-org-seat-monthly", StripeStoragePlanId = "storage-gb-monthly", BasePrice = 0, SeatPrice = 6, AdditionalStoragePricePerGb = 0.5M }, }; #endregion } public static IDictionary> GlobalDomains { get; set; } public static IEnumerable Plans { get; set; } } }