class Courses::CodingFundamentals < Courses::Course
  include Singleton

  def slug = "coding-fundamentals"
  def template_slug = "coding_fundamentals"
  def name = "Coding Fundamentals"
  def full_price = 99.99
  def self.url = instance.url

  # rubocop:disable Layout/LineLength
  def description = "Learn to code and build rock solid coding fundamentals! Perfect for total beginners or anyone who wants to build more solid foundations."

  def blurb = Markdown::Parse.(
    "Learn to code and build rock solid coding fundamentals! Perfect for **total beginners** or anyone who wants to **build more solid foundations.**"
  )
  # rubocop:enable Layout/LineLength

  def enable_for_user!(user)
    user.update!(bootcamp_attendee: true)
    User::SetDiscordRoles.defer(user)
    User::SetDiscourseGroups.defer(user)

    user.create_bootcamp_data! unless user.bootcamp_data
    user.bootcamp_data.update!(enrolled_on_part_1: true, active_part: 1)

    # TODO: Send welcome email
  end

  def stripe_prices = STRIPE_PRICES

  STRIPE_PRICES = {
    "DEFAULT" => { dollars: 99.00, stripe_id: "price_1QD0D3EoOT0Jqx0Uj2UvJ76j" },
    "AE" => { dollars: 54.99, stripe_id: "price_1QD0K6EoOT0Jqx0UhHyh4A4u" },
    "AF" => { dollars: 24.99, stripe_id: "price_1QD0HiEoOT0Jqx0UouVId42Y" },
    "AG" => { dollars: 64.99, stripe_id: "price_1QD0KZEoOT0Jqx0UpXsLazjL" },
    "AI" => { dollars: 69.99, stripe_id: "price_1QD0KoEoOT0Jqx0UfXIj9nhk" },
    "AL" => { dollars: 39.99, stripe_id: "price_1QD0JVEoOT0Jqx0UOmfapEhQ" },
    "AM" => { dollars: 34.99, stripe_id: "price_1QD0IwEoOT0Jqx0UZN4TsgSd" },
    "AO" => { dollars: 24.99, stripe_id: "price_1QD0HmEoOT0Jqx0UxJpfNXWd" },
    "AR" => { dollars: 19.99, stripe_id: "price_1QD0HWEoOT0Jqx0UGNCoobj1" },
    "AS" => { dollars: 79.99, stripe_id: "price_1QD0LAEoOT0Jqx0UfA31VJRI" },
    "AW" => { dollars: 69.99, stripe_id: "price_1QD0KnEoOT0Jqx0UQsDCzEZU" },
    "AZ" => { dollars: 34.99, stripe_id: "price_1QD0IbEoOT0Jqx0UOSsTqAdJ" },
    "BA" => { dollars: 34.99, stripe_id: "price_1QD0IoEoOT0Jqx0Uu0IDuRMj" },
    "BD" => { dollars: 24.99, stripe_id: "price_1QD0HsEoOT0Jqx0Ud0OuXj7b" },
    "BG" => { dollars: 39.99, stripe_id: "price_1QD0JFEoOT0Jqx0UvW2o4LEh" },
    "BH" => { dollars: 44.99, stripe_id: "price_1QD0JiEoOT0Jqx0U8vcpTrqT" },
    "BI" => { dollars: 24.99, stripe_id: "price_1QD0HyEoOT0Jqx0U9ktEssQp" },
    "BJ" => { dollars: 34.99, stripe_id: "price_1QD0IaEoOT0Jqx0UmEnPqmkr" },
    "BL" => { dollars: 69.99, stripe_id: "price_1QD0KyEoOT0Jqx0UegRfTia7" },
    "BN" => { dollars: 39.99, stripe_id: "price_1QD0J8EoOT0Jqx0Uv9ONjkdh" },
    "BO" => { dollars: 39.99, stripe_id: "price_1QD0JXEoOT0Jqx0UHW4nrTjf" },
    "BR" => { dollars: 39.99, stripe_id: "price_1QD0JSEoOT0Jqx0UTH0Qg8jQ" },
    "BS" => { dollars: 79.99, stripe_id: "price_1QD0LOEoOT0Jqx0Ut2NNKX90" },
    "BT" => { dollars: 24.99, stripe_id: "price_1QD0HoEoOT0Jqx0Uwu70OmMa" },
    "BW" => { dollars: 37.64, stripe_id: "price_1QD0IvEoOT0Jqx0UVhrQxrNh" },
    "BY" => { dollars: 24.99, stripe_id: "price_1QD0HqEoOT0Jqx0U5UjSj5Mv" },
    "CD" => { dollars: 34.99, stripe_id: "price_1QD0ITEoOT0Jqx0UA1bYHbcx" },
    "CF" => { dollars: 39.99, stripe_id: "price_1QD0JBEoOT0Jqx0UtvNdSZGf" },
    "CG" => { dollars: 34.99, stripe_id: "price_1QD0IjEoOT0Jqx0UcGzLdLXH" },
    "CI" => { dollars: 34.99, stripe_id: "price_1QD0IeEoOT0Jqx0Uq6Mc0QhL" },
    "CK" => { dollars: 79.99, stripe_id: "price_1QD0LCEoOT0Jqx0UTuoJL1Wo" },
    "CL" => { dollars: 44.99, stripe_id: "price_1QD0JeEoOT0Jqx0Urnhy3AhF" },
    "CM" => { dollars: 29.99, stripe_id: "price_1QD0ICEoOT0Jqx0UEawEeExT" },
    "CN" => { dollars: 49.99, stripe_id: "price_1QD0JwEoOT0Jqx0UK5iILpx5" },
    "CO" => { dollars: 29.99, stripe_id: "price_1QD0ILEoOT0Jqx0Uzx0osmoQ" },
    "CR" => { dollars: 39.99, stripe_id: "price_1QD0JYEoOT0Jqx0UPn5SLrIu" },
    "CU" => { dollars: 69.99, stripe_id: "price_1QD0KrEoOT0Jqx0UsvBELlN5" },
    "CV" => { dollars: 49.99, stripe_id: "price_1QD0JnEoOT0Jqx0UCTWbYtb2" },
    "CW" => { dollars: 69.99, stripe_id: "price_1QD0KcEoOT0Jqx0U0xk7gKFh" },
    "CY" => { dollars: 59.99, stripe_id: "price_1QD0KOEoOT0Jqx0Ufct5tA06" },
    "CZ" => { dollars: 49.99, stripe_id: "price_1QD0K2EoOT0Jqx0Uk7Baf5G1" },
    "DJ" => { dollars: 49.99, stripe_id: "price_1QD0JrEoOT0Jqx0U0XsyMGQM" },
    "DM" => { dollars: 49.99, stripe_id: "price_1QD0JuEoOT0Jqx0U97OM1y2I" },
    "DO" => { dollars: 39.99, stripe_id: "price_1QD0J5EoOT0Jqx0UxIWNAU3Z" },
    "DZ" => { dollars: 29.99, stripe_id: "price_1QD0IEEoOT0Jqx0U08y6pdJC" },
    "EC" => { dollars: 39.99, stripe_id: "price_1QD0JEEoOT0Jqx0UhxGhJGzw" },
    "EE" => { dollars: 59.99, stripe_id: "price_1QD0KQEoOT0Jqx0UeN8KbDEJ" },
    "EG" => { dollars: 19.99, stripe_id: "price_1QD0HOEoOT0Jqx0UEOvYJ9WF" },
    "ES" => { dollars: 69.99, stripe_id: "price_1QD0KbEoOT0Jqx0UwsRHMWJ6" },
    "ET" => { dollars: 19.99, stripe_id: "price_1QD0HZEoOT0Jqx0U3Nzrciy9" },
    "FJ" => { dollars: 39.99, stripe_id: "price_1QD0J9EoOT0Jqx0UcfosHjfH" },
    "GD" => { dollars: 69.99, stripe_id: "price_1QD0KsEoOT0Jqx0Uy6pAZoBL" },
    "GE" => { dollars: 29.99, stripe_id: "price_1QD0IFEoOT0Jqx0UykGHYmyZ" },
    "GH" => { dollars: 19.99, stripe_id: "price_1QD0HgEoOT0Jqx0UxsSEY1V0" },
    "GM" => { dollars: 24.99, stripe_id: "price_1QD0HpEoOT0Jqx0UiSBxHtog" },
    "GN" => { dollars: 39.99, stripe_id: "price_1QD0J0EoOT0Jqx0UjNEwEQgQ" },
    "GP" => { dollars: 69.99, stripe_id: "price_1QD0KuEoOT0Jqx0UlJWQmR7d" },
    "GQ" => { dollars: 37.55, stripe_id: "price_1QD0ItEoOT0Jqx0UfwI8upiO" },
    "GR" => { dollars: 59.99, stripe_id: "price_1QD0KHEoOT0Jqx0UlkYfxcaY" },
    "GS" => { dollars: 69.99, stripe_id: "price_1QD0L7EoOT0Jqx0UiQuKyaxO" },
    "GT" => { dollars: 39.99, stripe_id: "price_1QD0JMEoOT0Jqx0UUvzG0j0q" },
    "GY" => { dollars: 34.99, stripe_id: "price_1QD0IpEoOT0Jqx0U2HCsZ17P" },
    "HK" => { dollars: 69.99, stripe_id: "price_1QD0KgEoOT0Jqx0UqqgAcXlK" },
    "HN" => { dollars: 39.99, stripe_id: "price_1QD0JUEoOT0Jqx0UqiOE0dlu" },
    "HR" => { dollars: 44.99, stripe_id: "price_1QD0JkEoOT0Jqx0UwmIyaUlO" },
    "HT" => { dollars: 54.99, stripe_id: "price_1QD0K9EoOT0Jqx0UUBVknacg" },
    "HU" => { dollars: 44.99, stripe_id: "price_1QD0JhEoOT0Jqx0UBugiGDtU" },
    "ID" => { dollars: 29.99, stripe_id: "price_1QD0I8EoOT0Jqx0UKHqz3iMf" },
    "IN" => { dollars: 24.99, stripe_id: "price_1QD0HvEoOT0Jqx0Un1arkwRQ" },
    "IQ" => { dollars: 44.99, stripe_id: "price_1QD0JaEoOT0Jqx0UCCn7LLQM" },
    "IT" => { dollars: 69.99, stripe_id: "price_1QD0KeEoOT0Jqx0UUEv7bHzf" },
    "JM" => { dollars: 54.99, stripe_id: "price_1QD0KEEoOT0Jqx0UgdY7E4qt" },
    "JO" => { dollars: 39.99, stripe_id: "price_1QD0JQEoOT0Jqx0UD2W78imA" },
    "JP" => { dollars: 59.99, stripe_id: "price_1QD0KVEoOT0Jqx0U6adHL9Ru" },
    "KE" => { dollars: 44.99, stripe_id: "price_1QD0JbEoOT0Jqx0UZ2S6Xijm" },
    "KG" => { dollars: 24.99, stripe_id: "price_1QD0HuEoOT0Jqx0Uz2IovkV0" },
    "KH" => { dollars: 34.99, stripe_id: "price_1QD0IYEoOT0Jqx0U5DAXanPj" },
    "KI" => { dollars: 59.99, stripe_id: "price_1QD0KNEoOT0Jqx0UaaDFBNoq" },
    "KM" => { dollars: 39.99, stripe_id: "price_1QD0JIEoOT0Jqx0UsteK1QfY" },
    "KN" => { dollars: 69.99, stripe_id: "price_1QD0L0EoOT0Jqx0UIN25nRsX" },
    "KR" => { dollars: 59.99, stripe_id: "price_1QD0KFEoOT0Jqx0Ud1jj64qo" },
    "KW" => { dollars: 64.99, stripe_id: "price_1QD0KYEoOT0Jqx0UgpKOJjAu" },
    "KY" => { dollars: 69.99, stripe_id: "price_1QD0KqEoOT0Jqx0UIH9Eephn" },
    "KZ" => { dollars: 29.99, stripe_id: "price_1QD0IBEoOT0Jqx0UwiyJQJPA" },
    "LA" => { dollars: 19.99, stripe_id: "price_1QD0HYEoOT0Jqx0UAqcncJ83" },
    "LB" => { dollars: 19.99, stripe_id: "price_1QD0HMEoOT0Jqx0U4PCVQwoq" },
    "LC" => { dollars: 69.99, stripe_id: "price_1QD0L2EoOT0Jqx0Uc5Bw5a0U" },
    "LK" => { dollars: 19.99, stripe_id: "price_1QD0HbEoOT0Jqx0U1HcszA8u" },
    "LS" => { dollars: 34.99, stripe_id: "price_1QD0IOEoOT0Jqx0UM3iNrkFh" },
    "LT" => { dollars: 49.99, stripe_id: "price_1QD0K0EoOT0Jqx0UK2ThuVZM" },
    "LV" => { dollars: 54.99, stripe_id: "price_1QD0K5EoOT0Jqx0UM4WNPFVF" },
    "LY" => { dollars: 37.06, stripe_id: "price_1QD0IsEoOT0Jqx0Ug61e2Of3" },
    "MA" => { dollars: 39.99, stripe_id: "price_1QD0J3EoOT0Jqx0UgZFDGqsf" },
    "MD" => { dollars: 39.99, stripe_id: "price_1QD0J6EoOT0Jqx0UInKpTACM" },
    "ME" => { dollars: 39.99, stripe_id: "price_1QD0J2EoOT0Jqx0UTewt7UDa" },
    "MF" => { dollars: 69.99, stripe_id: "price_1QD0L4EoOT0Jqx0UMxIrpZOj" },
    "MK" => { dollars: 29.99, stripe_id: "price_1QD0INEoOT0Jqx0UbIt1vNwU" },
    "ML" => { dollars: 34.99, stripe_id: "price_1QD0IQEoOT0Jqx0Uvr5Ixb0t" },
    "MM" => { dollars: 19.99, stripe_id: "price_1QD0HVEoOT0Jqx0U2MZkDbmO" },
    "MN" => { dollars: 29.99, stripe_id: "price_1QD0IKEoOT0Jqx0UMqGR38Ot" },
    "MO" => { dollars: 59.99, stripe_id: "price_1QD0KJEoOT0Jqx0UiMAZ01gZ" },
    "MQ" => { dollars: 69.99, stripe_id: "price_1QD0KvEoOT0Jqx0UKCpX07rE" },
    "MR" => { dollars: 29.99, stripe_id: "price_1QD0I6EoOT0Jqx0UuJaVwdoc" },
    "MS" => { dollars: 69.99, stripe_id: "price_1QD0KxEoOT0Jqx0UP9bCdz3k" },
    "MT" => { dollars: 59.99, stripe_id: "price_1QD0KREoOT0Jqx0UP5FTev4n" },
    "MU" => { dollars: 34.99, stripe_id: "price_1QD0IgEoOT0Jqx0UuiRBjUWz" },
    "MV" => { dollars: 49.99, stripe_id: "price_1QD0JxEoOT0Jqx0UkS8jJhY1" },
    "MX" => { dollars: 49.99, stripe_id: "price_1QD0JqEoOT0Jqx0UnXdl7eqg" },
    "MY" => { dollars: 34.99, stripe_id: "price_1QD0IREoOT0Jqx0UYCblaF4w" },
    "MZ" => { dollars: 34.99, stripe_id: "price_1QD0IkEoOT0Jqx0UCZoczA0U" },
    "NA" => { dollars: 39.99, stripe_id: "price_1QD0JHEoOT0Jqx0UJS4TSSWw" },
    "NE" => { dollars: 19.99, stripe_id: "price_1QD0HTEoOT0Jqx0UeLDkjt3d" },
    "NG" => { dollars: 19.99, stripe_id: "price_1QD0HREoOT0Jqx0UneEHcB3c" },
    "NI" => { dollars: 29.99, stripe_id: "price_1QD0I9EoOT0Jqx0UI7VkouYj" },
    "NP" => { dollars: 24.99, stripe_id: "price_1QD0HxEoOT0Jqx0U5p7QLDTm" },
    "NU" => { dollars: 79.99, stripe_id: "price_1QD0LGEoOT0Jqx0UdTc8i7sM" },
    "OM" => { dollars: 44.99, stripe_id: "price_1QD0JcEoOT0Jqx0U161EhtDK" },
    "PA" => { dollars: 44.99, stripe_id: "price_1QD0JfEoOT0Jqx0UBiEYuRPq" },
    "PE" => { dollars: 49.99, stripe_id: "price_1QD0JtEoOT0Jqx0Ut1LPngTR" },
    "PF" => { dollars: 79.99, stripe_id: "price_1QD0LFEoOT0Jqx0U1VKav3fd" },
    "PG" => { dollars: 59.99, stripe_id: "price_1QD0KLEoOT0Jqx0UPynaohcJ" },
    "PH" => { dollars: 34.99, stripe_id: "price_1QD0IUEoOT0Jqx0UxibZKugO" },
    "PK" => { dollars: 19.99, stripe_id: "price_1QD0HcEoOT0Jqx0UsyNQ1Gp7" },
    "PL" => { dollars: 44.99, stripe_id: "price_1QD0JlEoOT0Jqx0U3t09at8I" },
    "PN" => { dollars: 79.99, stripe_id: "price_1QD0LIEoOT0Jqx0U2edyMNMB" },
    "PR" => { dollars: 79.99, stripe_id: "price_1QD0L8EoOT0Jqx0UZUWtzmEJ" },
    "PS" => { dollars: 19.99, stripe_id: "price_1QD0HQEoOT0Jqx0UpW7px54c" },
    "PT" => { dollars: 54.99, stripe_id: "price_1QD0KCEoOT0Jqx0UAhr0SsNw" },
    "PW" => { dollars: 79.99, stripe_id: "price_1QD0LPEoOT0Jqx0UMDYhrl2T" },
    "PY" => { dollars: 24.99, stripe_id: "price_1QD0HjEoOT0Jqx0Upx5CJbQP" },
    "QA" => { dollars: 69.99, stripe_id: "price_1QD0KjEoOT0Jqx0Ui989cLcm" },
    "RO" => { dollars: 39.99, stripe_id: "price_1QD0IyEoOT0Jqx0U95iqM9PV" },
    "RS" => { dollars: 39.99, stripe_id: "price_1QD0JCEoOT0Jqx0UMEdHwNpR" },
    "RW" => { dollars: 24.99, stripe_id: "price_1QD0I1EoOT0Jqx0UpzCfsqlJ" },
    "SA" => { dollars: 49.99, stripe_id: "price_1QD0JoEoOT0Jqx0UqzI40qIQ" },
    "SB" => { dollars: 69.99, stripe_id: "price_1QD0KlEoOT0Jqx0UbkveVLHS" },
    "SC" => { dollars: 54.99, stripe_id: "price_1QD0K3EoOT0Jqx0UXotgab4r" },
    "SD" => { dollars: 19.99, stripe_id: "price_1QD0HIEoOT0Jqx0UKMDemRly" },
    "SG" => { dollars: 59.99, stripe_id: "price_1QD0KTEoOT0Jqx0UpM3AtyOf" },
    "SI" => { dollars: 59.99, stripe_id: "price_1QD0KIEoOT0Jqx0UUWATk3kf" },
    "SK" => { dollars: 54.99, stripe_id: "price_1QD0K8EoOT0Jqx0U9wzKqGGY" },
    "SN" => { dollars: 34.99, stripe_id: "price_1QD0IhEoOT0Jqx0UEcf7GiTb" },
    "SR" => { dollars: 36.86, stripe_id: "price_1QD0IrEoOT0Jqx0UDogCc0cg" },
    "SV" => { dollars: 39.99, stripe_id: "price_1QD0JOEoOT0Jqx0Uo07uZ98y" },
    "SX" => { dollars: 69.99, stripe_id: "price_1QD0L5EoOT0Jqx0UPPHuClTU" },
    "SZ" => { dollars: 34.99, stripe_id: "price_1QD0IXEoOT0Jqx0Uxyu1RJmV" },
    "TD" => { dollars: 34.99, stripe_id: "price_1QD0ImEoOT0Jqx0UNsqnbWKQ" },
    "TH" => { dollars: 29.99, stripe_id: "price_1QD0IHEoOT0Jqx0UkK0ZOX4D" },
    "TK" => { dollars: 79.99, stripe_id: "price_1QD0LLEoOT0Jqx0UpfB9hLtS" },
    "TL" => { dollars: 29.99, stripe_id: "price_1QD0IIEoOT0Jqx0U2sle0H0k" },
    "TN" => { dollars: 29.99, stripe_id: "price_1QD0I5EoOT0Jqx0UNWjqhMkB" },
    "TO" => { dollars: 64.99, stripe_id: "price_1QD0KWEoOT0Jqx0UpsCjDlUg" },
    "TR" => { dollars: 19.99, stripe_id: "price_1QD0HeEoOT0Jqx0UZ3Df4RpU" },
    "TT" => { dollars: 54.99, stripe_id: "price_1QD0KBEoOT0Jqx0UXhUiRXIv" },
    "TZ" => { dollars: 24.99, stripe_id: "price_1QD0I3EoOT0Jqx0UKmipVpk2" },
    "UA" => { dollars: 24.99, stripe_id: "price_1QD0I0EoOT0Jqx0URie5rYVD" },
    "UG" => { dollars: 34.99, stripe_id: "price_1QD0IVEoOT0Jqx0U6eHKnosT" },
    "UY" => { dollars: 69.99, stripe_id: "price_1QD0KhEoOT0Jqx0Uo8ZEzJFb" },
    "UZ" => { dollars: 19.99, stripe_id: "price_1QD0HJEoOT0Jqx0UQSHd2GRn" },
    "VC" => { dollars: 49.99, stripe_id: "price_1QD0JzEoOT0Jqx0UaKX5HG4o" },
    "VE" => { dollars: 29.99, stripe_id: "price_1QD0HLEoOT0Jqx0UXIAUo1yb" },
    "VN" => { dollars: 34.99, stripe_id: "price_1QD0IdEoOT0Jqx0UXDth0R38" },
    "WF" => { dollars: 79.99, stripe_id: "price_1QD0LMEoOT0Jqx0ULU59PEX4" },
    "WS" => { dollars: 79.99, stripe_id: "price_1QD0LKEoOT0Jqx0UdzgDO8Qo" },
    "ZA" => { dollars: 39.99, stripe_id: "price_1QD0JKEoOT0Jqx0UxthNx7Rx" },
    "ZM" => { dollars: 24.99, stripe_id: "price_1QD0HlEoOT0Jqx0UJ0kxIZuM" }
  }.freeze
end
