346 lines
10 KiB
PL/PgSQL
346 lines
10 KiB
PL/PgSQL
BEGIN;
|
|
|
|
|
|
ALTER TABLE mock.shop_amazon_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_amazon_events_by_timestamp ON mock.shop_amazon_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_amazon_events_by_timestamp_unprocessed ON mock.shop_amazon_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_big_cartel_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_big_cartel_events_by_timestamp ON mock.shop_big_cartel_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_big_cartel_events_by_timestamp_unprocessed ON mock.shop_big_cartel_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_ebay_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_ebay_events_by_timestamp ON mock.shop_ebay_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_ebay_events_by_timestamp_unprocessed ON mock.shop_ebay_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_ecwid_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_ecwid_events_by_timestamp ON mock.shop_ecwid_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_ecwid_events_by_timestamp_unprocessed ON mock.shop_ecwid_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_etsy_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_etsy_events_by_timestamp ON mock.shop_etsy_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_etsy_events_by_timestamp_unprocessed ON mock.shop_etsy_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_shopify_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_shopify_events_by_timestamp ON mock.shop_shopify_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_shopify_events_by_timestamp_unprocessed ON mock.shop_shopify_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_square_online_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_square_online_events_by_timestamp ON mock.shop_square_online_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_square_online_events_by_timestamp_unprocessed ON mock.shop_square_online_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_squarespace_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_squarespace_events_by_timestamp ON mock.shop_squarespace_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_squarespace_events_by_timestamp_unprocessed ON mock.shop_squarespace_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_tiktok_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_tiktok_events_by_timestamp ON mock.shop_tiktok_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_tiktok_events_by_timestamp_unprocessed ON mock.shop_tiktok_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_walmart_marketplace_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_walmart_marketplace_events_by_timestamp ON mock.shop_walmart_marketplace_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_walmart_marketplace_events_by_timestamp_unprocessed ON mock.shop_walmart_marketplace_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_wix_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_wix_events_by_timestamp ON mock.shop_wix_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_wix_events_by_timestamp_unprocessed ON mock.shop_wix_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_woo_commerce_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_woo_commerce_events_by_timestamp ON mock.shop_woo_commerce_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_woo_commerce_events_by_timestamp_unprocessed ON mock.shop_woo_commerce_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
ALTER TABLE mock.shop_zoho_events
|
|
ADD COLUMN processed BOOLEAN DEFAULT FALSE,
|
|
ADD COLUMN processed_successfully BOOLEAN DEFAULT FALSE;
|
|
CREATE INDEX shop_zoho_events_by_timestamp ON mock.shop_zoho_events (shop_id, event_timestamp);
|
|
CREATE INDEX shop_zoho_events_by_timestamp_unprocessed ON mock.shop_zoho_events (shop_id, event_timestamp) WHERE NOT processed;
|
|
|
|
|
|
--- event processing
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_amazon_event() RETURNS TRIGGER AS $process_raw_amazon_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_amazon_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_amazon_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_amazon_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_big_cartel_event() RETURNS TRIGGER AS $process_raw_big_cartel_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_big_cartel_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_big_cartel_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_big_cartel_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_ebay_event() RETURNS TRIGGER AS $process_raw_ebay_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_ebay_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_ebay_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_ebay_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_ecwid_event() RETURNS TRIGGER AS $process_raw_ecwid_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_ecwid_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_ecwid_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_ecwid_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_etsy_event() RETURNS TRIGGER AS $process_raw_etsy_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_etsy_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_etsy_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_etsy_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_shopify_event() RETURNS TRIGGER AS $process_raw_shopify_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_shopify_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_shopify_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_shopify_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_square_online_event() RETURNS TRIGGER AS $process_raw_square_online_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_square_online_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_square_online_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_square_online_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_squarespace_event() RETURNS TRIGGER AS $process_raw_squarespace_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_squarespace_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_squarespace_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_squarespace_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_tiktok_event() RETURNS TRIGGER AS $process_raw_tiktok_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_tiktok_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_tiktok_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_tiktok_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_walmart_marketplace_event() RETURNS TRIGGER AS $process_raw_walmart_marketplace_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_walmart_marketplace_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_walmart_marketplace_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_walmart_marketplace_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_wix_event() RETURNS TRIGGER AS $process_raw_wix_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_wix_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_wix_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_wix_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_woo_commerce_event() RETURNS TRIGGER AS $process_raw_woo_commerce_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_woo_commerce_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_woo_commerce_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_woo_commerce_event$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION mock.process_raw_zoho_event() RETURNS TRIGGER AS $process_raw_zoho_event$
|
|
BEGIN
|
|
INSERT INTO mock.shop_zoho_events (
|
|
platform,
|
|
shop_id,
|
|
event_timestamp,
|
|
event_id
|
|
)
|
|
SELECT
|
|
NEW.platform,
|
|
NEW.shop_id,
|
|
NEW.event_timestamp,
|
|
NEW.event_id;
|
|
|
|
PERFORM pg_notify('mock_shop_zoho_event_inserted', null);
|
|
|
|
RETURN NULL;
|
|
END;
|
|
$process_raw_zoho_event$ LANGUAGE plpgsql;
|
|
|
|
COMMIT;
|