mock amazon event processing stubbed

This commit is contained in:
2026-03-03 20:51:06 -07:00
parent b8de09bc00
commit 0a03b2e62e
4 changed files with 622 additions and 3 deletions
@@ -0,0 +1,58 @@
BEGIN;
ALTER TABLE mock.shop_amazon_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_amazon_events_by_timestamp;
ALTER TABLE mock.shop_big_cartel_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_big_cartel_events_by_timestamp;
ALTER TABLE mock.shop_ebay_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_ebay_events_by_timestamp;
ALTER TABLE mock.shop_ecwid_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_ecwid_events_by_timestamp;
ALTER TABLE mock.shop_etsy_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_etsy_events_by_timestamp;
ALTER TABLE mock.shop_shopify_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_shopify_events_by_timestamp;
ALTER TABLE mock.shop_square_online_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_square_online_events_by_timestamp;
ALTER TABLE mock.shop_squarespace_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_squarespace_events_by_timestamp;
ALTER TABLE mock.shop_tiktok_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_tiktok_events_by_timestamp;
ALTER TABLE mock.shop_walmart_marketplace_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_walmart_marketplace_events_by_timestamp;
ALTER TABLE mock.shop_wix_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_wix_events_by_timestamp;
ALTER TABLE mock.shop_woo_commerce_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_woo_commerce_events_by_timestamp;
ALTER TABLE mock.shop_zoho_events
DROP COLUMN processed,
DROP COLUMN processed_successfully;
DROP INDEX mock.shop_zoho_events_by_timestamp;
COMMIT;
@@ -0,0 +1,345 @@
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;