From 68c5c40edc1c5ba428c76aebe4605ff0116235a4 Mon Sep 17 00:00:00 2001 From: Fredrik Ringqvist <35255659+fredrikphotowall@users.noreply.github.com> Date: Tue, 21 Jun 2022 10:35:50 +0200 Subject: [PATCH] Add Switzerland (#281) --- migrations/000.380.sql | 108 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 migrations/000.380.sql diff --git a/migrations/000.380.sql b/migrations/000.380.sql new file mode 100644 index 0000000..d04e050 --- /dev/null +++ b/migrations/000.380.sql @@ -0,0 +1,108 @@ +-- Add Switzerland sites + +-- Add currency +INSERT INTO "i18n-currencies" (iso3char, symbol, fractional_parts, exchange_rate, locale) + VALUES ('CHF', 'fr.', 0, 0.0985, 'de_CH.UTF-8'); +INSERT INTO "product-currencies" (iso3char, exchange_rate) VALUES ('CHF', 0.0985); + +-- Add locales, market, market locales +INSERT INTO locales (value, name, fallback_id) VALUES + ('de_CH', 'German (Switzerland)', (select id from locales where value = 'de_DE')), + ('fr_CH', 'French (Switzerland)', (select id from locales where value = 'fr_FR')), + ('it_CH', 'Italian (Switzerland)', (select id from locales where value = 'it_IT')); + +INSERT INTO markets (name, vat, currency, price_adjustment) VALUES ('CH', 1.077, 'CHF', 1.1); + +INSERT INTO market_locales (market_id, locale_id, name) VALUES + ((SELECT id FROM markets WHERE name = 'CH'), (SELECT id FROM locales WHERE value = 'de_CH'), 'Switzerland (German)'), + ((SELECT id FROM markets WHERE name = 'CH'), (SELECT id FROM locales WHERE value = 'fr_CH'), 'Switzerland (French)'), + ((SELECT id FROM markets WHERE name = 'CH'), (SELECT id FROM locales WHERE value = 'it_CH'), 'Switzerland (Italian)'); + + +-- Copy collections +INSERT INTO collections_texts (collection_id, meta_title, meta_description, title, description, slug, locale_id) + SELECT collection_id, meta_title, meta_description, title, description, slug, (SELECT id FROM locales WHERE value = 'de_CH') + FROM collections_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'de_DE'); + +INSERT INTO collections_texts (collection_id, meta_title, meta_description, title, description, slug, locale_id) + SELECT collection_id, meta_title, meta_description, title, description, slug, (SELECT id FROM locales WHERE value = 'fr_CH') + FROM collections_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'fr_FR'); + +INSERT INTO collections_texts (collection_id, meta_title, meta_description, title, description, slug, locale_id) + SELECT collection_id, meta_title, meta_description, title, description, slug, (SELECT id FROM locales WHERE value = 'it_CH') + FROM collections_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'it_IT'); + + +-- Copy designer texts +INSERT INTO designer_texts (designerid, header, description, locale_id) + SELECT designerid, header, description, (SELECT id FROM locales WHERE value = 'de_CH') + FROM designer_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'de_DE'); + +INSERT INTO designer_texts (designerid, header, description, locale_id) + SELECT designerid, header, description, (SELECT id FROM locales WHERE value = 'fr_CH') + FROM designer_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'fr_FR'); + +INSERT INTO designer_texts (designerid, header, description, locale_id) + SELECT designerid, header, description, (SELECT id FROM locales WHERE value = 'it_CH') + FROM designer_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'it_IT'); + + +-- Copy category data (page titles, meta descriptions), and category texts +INSERT INTO categorydata (category_id, datakey_id, text, locale_id) + SELECT category_id, datakey_id, text, (SELECT id FROM locales WHERE value = 'de_CH') + FROM categorydata WHERE locale_id = (SELECT id FROM locales WHERE value = 'de_DE'); + +INSERT INTO categorydata (category_id, datakey_id, text, locale_id) + SELECT category_id, datakey_id, text, (SELECT id FROM locales WHERE value = 'fr_CH') + FROM categorydata WHERE locale_id = (SELECT id FROM locales WHERE value = 'fr_FR'); + +INSERT INTO categorydata (category_id, datakey_id, text, locale_id) + SELECT category_id, datakey_id, text, (SELECT id FROM locales WHERE value = 'it_CH') + FROM categorydata WHERE locale_id = (SELECT id FROM locales WHERE value = 'it_IT'); + +INSERT INTO category_texts (locale_id, category_id, wallpaper_name, wallpaper_h1, wallpaper_description, canvas_name, canvas_h1, canvas_description, name, design_wallpaper_h1, design_wallpaper_description, poster_name, poster_h1, poster_description, framed_print_name, framed_print_h1, framed_print_description) + SELECT (SELECT id FROM locales WHERE value = 'de_CH'), category_id, wallpaper_name, wallpaper_h1, wallpaper_description, canvas_name, canvas_h1, canvas_description, name, design_wallpaper_h1, design_wallpaper_description, poster_name, poster_h1, poster_description, framed_print_name, framed_print_h1, framed_print_description + FROM category_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'de_DE'); + +INSERT INTO category_texts (locale_id, category_id, wallpaper_name, wallpaper_h1, wallpaper_description, canvas_name, canvas_h1, canvas_description, name, design_wallpaper_h1, design_wallpaper_description, poster_name, poster_h1, poster_description, framed_print_name, framed_print_h1, framed_print_description) + SELECT (SELECT id FROM locales WHERE value = 'fr_CH'), category_id, wallpaper_name, wallpaper_h1, wallpaper_description, canvas_name, canvas_h1, canvas_description, name, design_wallpaper_h1, design_wallpaper_description, poster_name, poster_h1, poster_description, framed_print_name, framed_print_h1, framed_print_description + FROM category_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'fr_FR'); + +INSERT INTO category_texts (locale_id, category_id, wallpaper_name, wallpaper_h1, wallpaper_description, canvas_name, canvas_h1, canvas_description, name, design_wallpaper_h1, design_wallpaper_description, poster_name, poster_h1, poster_description, framed_print_name, framed_print_h1, framed_print_description) + SELECT (SELECT id FROM locales WHERE value = 'it_CH'), category_id, wallpaper_name, wallpaper_h1, wallpaper_description, canvas_name, canvas_h1, canvas_description, name, design_wallpaper_h1, design_wallpaper_description, poster_name, poster_h1, poster_description, framed_print_name, framed_print_h1, framed_print_description + FROM category_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'it_IT'); + + +-- Copy blacklisted products +INSERT INTO product_blacklist (product_id, group_id, market_id) + SELECT product_id, group_id, (select id from markets where name = 'CH') + FROM product_blacklist WHERE market_id = (select id from markets where name = 'GLOBAL'); + + +-- Add delivery methods +INSERT INTO "delivery-methods_prices" (territory, currency, option, option_value, price, method) VALUES + ('CH', 'CHF', '', '', 0, (select id from "delivery-methods" where name = 'samplesDelivery')), + ('CH', 'CHF', '', '', 0, (select id from "delivery-methods" where name = 'dhlEconomyWorld')), + ('CH', 'CHF', '', '', (SELECT 35 / vat FROM markets WHERE name = 'CH'), (select id from "delivery-methods" where name = 'dhl')); + + +-- Add invoice sequence +CREATE SEQUENCE "order-invoiceIdCH" start 1000; + + +-- Copy popular links text tags to override the fallback values (because the prefix will be wrong) +INSERT INTO "i18n-texts_data" (textid, text, locale_id) + SELECT textid, replace(text, 'href="/', 'href="/ch-de/'), (select id from locales where value = 'de_CH') + FROM "i18n-texts" join "i18n-texts_data" using (textid) + where name ilike 'popular-links-%' and locale_id = (select id from locales where value = 'de_DE'); + +INSERT INTO "i18n-texts_data" (textid, text, locale_id) + SELECT textid, replace(text, 'href="/', 'href="/ch-fr/'), (select id from locales where value = 'fr_CH') + FROM "i18n-texts" join "i18n-texts_data" using (textid) + where name ilike 'popular-links-%' and locale_id = (select id from locales where value = 'fr_FR'); + +INSERT INTO "i18n-texts_data" (textid, text, locale_id) + SELECT textid, replace(text, '/it/', '/ch-it/'), (select id from locales where value = 'it_CH') + FROM "i18n-texts" join "i18n-texts_data" using (textid) + where name ilike 'popular-links-%' and locale_id = (select id from locales where value = 'it_IT'); +