From ef61f314d81a91f447d4bf728e0ebe5cfb2a3d71 Mon Sep 17 00:00:00 2001 From: Fredrik Ringqvist <35255659+fredrikphotowall@users.noreply.github.com> Date: Wed, 21 Sep 2022 11:53:43 +0200 Subject: [PATCH] Add Estonia and Luxembourg (#290) --- migrations/000.387.sql | 118 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 migrations/000.387.sql diff --git a/migrations/000.387.sql b/migrations/000.387.sql new file mode 100644 index 0000000..aff04bd --- /dev/null +++ b/migrations/000.387.sql @@ -0,0 +1,118 @@ +-- Add Estonia and Luxembourg + +-- Add locales, market, market locales +INSERT INTO locales (value, name, fallback_id) VALUES + ('en_EE', 'English (Estonia)', (select id from locales where value = 'en_GB')), + ('de_LU', 'German (Luxembourg)', (select id from locales where value = 'de_DE')), + ('fr_LU', 'French (Luxembourg)', (select id from locales where value = 'fr_FR')); + +INSERT INTO markets (name, vat, currency, price_adjustment) VALUES ('EE', 1.2, 'EUR', (select price_adjustment from markets where name = 'DE')); +INSERT INTO markets (name, vat, currency, price_adjustment) VALUES ('LU', 1.17, 'EUR', (select price_adjustment from markets where name = 'DE')); + +INSERT INTO market_locales (market_id, locale_id, name) VALUES + ((SELECT id FROM markets WHERE name = 'EE'), (SELECT id FROM locales WHERE value = 'en_EE'), 'Estonia (English)'), + ((SELECT id FROM markets WHERE name = 'LU'), (SELECT id FROM locales WHERE value = 'de_LU'), 'Luxembourg (German)'), + ((SELECT id FROM markets WHERE name = 'LU'), (SELECT id FROM locales WHERE value = 'fr_LU'), 'Luxembourg (French)'); + + +-- 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_LU') + 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_LU') + 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 = 'en_EE') + FROM collections_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'en_GB'); + + +-- Copy designer texts +INSERT INTO designer_texts (designerid, header, description, locale_id) + SELECT designerid, header, description, (SELECT id FROM locales WHERE value = 'de_LU') + 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_LU') + 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 = 'en_EE') + FROM designer_texts WHERE locale_id = (SELECT id FROM locales WHERE value = 'en_GB'); + + +-- 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_LU') + 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_LU') + 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 = 'en_EE') + FROM categorydata WHERE locale_id = (SELECT id FROM locales WHERE value = 'en_GB'); + +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_LU'), 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_LU'), 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 = 'en_EE'), 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 = 'en_GB'); + + +-- Copy blacklisted products +-- EE: from global +-- LU: from BE or NL (benelux) +INSERT INTO product_blacklist (product_id, group_id, market_id) + SELECT product_id, group_id, (select id from markets where name = 'EE') + FROM product_blacklist WHERE market_id = (select id from markets where name = 'GLOBAL'); +INSERT INTO product_blacklist (product_id, group_id, market_id) + SELECT product_id, group_id, (select id from markets where name = 'LU') + FROM product_blacklist WHERE market_id = (select id from markets where name = 'BE'); + +-- Add delivery methods (LU and EE: same delivery methods/prices as Germany) +-- Clear current methods for LU/EE+EUR. Add correct methods for new sites: +DELETE FROM "delivery-methods_prices" WHERE territory IN ('EE', 'LU') AND currency = 'EUR'; +INSERT INTO "delivery-methods_prices" (territory, currency, option, option_value, price, method) VALUES + ('LU', 'EUR', '', '', 0, (select id from "delivery-methods" where name = 'samplesDelivery')), + ('LU', 'EUR', '', '', 0, (select id from "delivery-methods" where name = 'dhlEconomyEU')), + ('LU', 'EUR', '', '', (SELECT 7 / vat FROM markets WHERE name = 'LU'), (select id from "delivery-methods" where name = 'dhlExpress')); +INSERT INTO "delivery-methods_prices" (territory, currency, option, option_value, price, method) VALUES + ('EE', 'EUR', '', '', 0, (select id from "delivery-methods" where name = 'samplesDelivery')), + ('EE', 'EUR', '', '', 0, (select id from "delivery-methods" where name = 'dhlEconomyEU')), + ('EE', 'EUR', '', '', (SELECT 7 / vat FROM markets WHERE name = 'EE'), (select id from "delivery-methods" where name = 'dhlExpress')); +-- Delete unused delivery methods for other currencies: +-- (Note: I verified in contract_customers first that this was safe to do) +DELETE FROM "delivery-methods_prices" WHERE territory IN ('EE', 'LU') and currency != 'EUR'; + +-- Add invoice sequences +CREATE SEQUENCE "order-invoiceIdEE" start 1000; +CREATE SEQUENCE "order-invoiceIdLU" start 1000; + + +-- Copy popular links text tags to override the fallback values (because the prefix will be wrong) +-- ee from global +-- fr_lu from fr_be (french speaking benelux country) +-- de_lu from de_de +INSERT INTO "i18n-texts_data" (textid, text, locale_id) + SELECT textid, replace(text, '/int/', '/ee/'), (select id from locales where value = 'en_EE') + FROM "i18n-texts" join "i18n-texts_data" using (textid) + where name ilike 'popular-links-%' and locale_id = (select id from locales where value = 'en_EU'); +INSERT INTO "i18n-texts_data" (textid, text, locale_id) + SELECT textid, replace(text, 'href="/', 'href="/lu-de/'), (select id from locales where value = 'de_LU') + 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="/be-fr/', 'href="/lu-fr/'), (select id from locales where value = 'fr_LU') + FROM "i18n-texts" join "i18n-texts_data" using (textid) + where name ilike 'popular-links-%' and locale_id = (select id from locales where value = 'fr_BE'); +