From 11ff52b1c7ca8c33f89785e821c5722f9398eb52 Mon Sep 17 00:00:00 2001 From: Angel Beltran Date: Wed, 24 Dec 2025 01:22:43 -0700 Subject: [PATCH] process raw_store_events records automatically via triggers --- .../000002_processed_tables.down.sql | 4 +++ .../000002_processed_tables.up.sql | 4 +++ .../000003_process_raw_events_tiktok.down.sql | 10 ++++++ .../000003_process_raw_events_tiktok.up.sql | 28 +++++++++++++++++ .../000004_drop_parsed_column.down.sql | 0 .../000004_drop_parsed_column.up.sql | 1 + .../000005_process_raw_events_etsy.down.sql | 9 ++++++ .../000005_process_raw_events_etsy.up.sql | 29 ++++++++++++++++++ .../000006_process_raw_events_wix.down.sql | 9 ++++++ .../000006_process_raw_events_wix.up.sql | 29 ++++++++++++++++++ internal/domains/raw_events/.events.go.swp | Bin 12288 -> 0 bytes 11 files changed, 123 insertions(+) create mode 100644 database_migrations/000003_process_raw_events_tiktok.down.sql create mode 100644 database_migrations/000003_process_raw_events_tiktok.up.sql create mode 100644 database_migrations/000004_drop_parsed_column.down.sql create mode 100644 database_migrations/000004_drop_parsed_column.up.sql create mode 100644 database_migrations/000005_process_raw_events_etsy.down.sql create mode 100644 database_migrations/000005_process_raw_events_etsy.up.sql create mode 100644 database_migrations/000006_process_raw_events_wix.down.sql create mode 100644 database_migrations/000006_process_raw_events_wix.up.sql delete mode 100644 internal/domains/raw_events/.events.go.swp diff --git a/database_migrations/000002_processed_tables.down.sql b/database_migrations/000002_processed_tables.down.sql index 1204a6e..b0619fb 100644 --- a/database_migrations/000002_processed_tables.down.sql +++ b/database_migrations/000002_processed_tables.down.sql @@ -1,3 +1,7 @@ +BEGIN; + DROP TABLE tiktok_store_events; DROP TABLE etsy_store_events; DROP TABLE wix_store_events; + +COMMIT; diff --git a/database_migrations/000002_processed_tables.up.sql b/database_migrations/000002_processed_tables.up.sql index 6581455..fa392c1 100644 --- a/database_migrations/000002_processed_tables.up.sql +++ b/database_migrations/000002_processed_tables.up.sql @@ -1,3 +1,5 @@ +BEGIN; + CREATE TABLE tiktok_store_events ( platform TEXT NOT NULL DEFAULT 'tiktok' CHECK (platform = 'tiktok'), store_id TEXT NOT NULL, @@ -27,3 +29,5 @@ CREATE TABLE wix_store_events ( PRIMARY KEY (store_id, event_id, event_timestamp), FOREIGN KEY (platform, store_id, event_id, event_timestamp) REFERENCES raw_store_events ); + +COMMIT; diff --git a/database_migrations/000003_process_raw_events_tiktok.down.sql b/database_migrations/000003_process_raw_events_tiktok.down.sql new file mode 100644 index 0000000..44992ff --- /dev/null +++ b/database_migrations/000003_process_raw_events_tiktok.down.sql @@ -0,0 +1,10 @@ +BEGIN; + + +DROP TRIGGER tiktok_store_events; + +DROP FUNCTION process_raw_tiktok_event; + + +COMMIT; + diff --git a/database_migrations/000003_process_raw_events_tiktok.up.sql b/database_migrations/000003_process_raw_events_tiktok.up.sql new file mode 100644 index 0000000..18cccc3 --- /dev/null +++ b/database_migrations/000003_process_raw_events_tiktok.up.sql @@ -0,0 +1,28 @@ +BEGIN; + + +CREATE OR REPLACE FUNCTION process_raw_tiktok_event() RETURNS TRIGGER AS $process_raw_tiktok_event$ + BEGIN + INSERT INTO tiktok_store_events ( + platform, + store_id, + event_timestamp, + event_id + ) + SELECT + NEW.platform, + NEW.store_id, + NEW.event_timestamp, + NEW.event_id; + RETURN NULL; + END; +$process_raw_tiktok_event$ LANGUAGE plpgsql; + +CREATE OR REPLACE TRIGGER tiktok_store_events + AFTER INSERT ON raw_store_events + FOR EACH ROW + WHEN (NEW.platform = 'tiktok') + EXECUTE FUNCTION process_raw_tiktok_event(); + + +COMMIT; diff --git a/database_migrations/000004_drop_parsed_column.down.sql b/database_migrations/000004_drop_parsed_column.down.sql new file mode 100644 index 0000000..e69de29 diff --git a/database_migrations/000004_drop_parsed_column.up.sql b/database_migrations/000004_drop_parsed_column.up.sql new file mode 100644 index 0000000..9daff8e --- /dev/null +++ b/database_migrations/000004_drop_parsed_column.up.sql @@ -0,0 +1 @@ +ALTER TABLE raw_store_events DROP COLUMN IF EXISTS parsed; diff --git a/database_migrations/000005_process_raw_events_etsy.down.sql b/database_migrations/000005_process_raw_events_etsy.down.sql new file mode 100644 index 0000000..0602463 --- /dev/null +++ b/database_migrations/000005_process_raw_events_etsy.down.sql @@ -0,0 +1,9 @@ +BEGIN; + + +DROP TRIGGER etsy_store_events; + +DROP FUNCTION process_raw_etsy_event; + + +COMMIT; diff --git a/database_migrations/000005_process_raw_events_etsy.up.sql b/database_migrations/000005_process_raw_events_etsy.up.sql new file mode 100644 index 0000000..f9e234a --- /dev/null +++ b/database_migrations/000005_process_raw_events_etsy.up.sql @@ -0,0 +1,29 @@ +BEGIN; + + +CREATE OR REPLACE FUNCTION process_raw_etsy_event() RETURNS TRIGGER AS $process_raw_etsy_event$ + BEGIN + INSERT INTO etsy_store_events ( + platform, + store_id, + event_timestamp, + event_id + ) + SELECT + NEW.platform, + NEW.store_id, + NEW.event_timestamp, + NEW.event_id; + RETURN NULL; + END; +$process_raw_etsy_event$ LANGUAGE plpgsql; + +CREATE OR REPLACE TRIGGER etsy_store_events + AFTER INSERT ON raw_store_events + FOR EACH ROW + WHEN (NEW.platform = 'etsy') + EXECUTE FUNCTION process_raw_etsy_event(); + + +COMMIT; + diff --git a/database_migrations/000006_process_raw_events_wix.down.sql b/database_migrations/000006_process_raw_events_wix.down.sql new file mode 100644 index 0000000..2be1484 --- /dev/null +++ b/database_migrations/000006_process_raw_events_wix.down.sql @@ -0,0 +1,9 @@ +BEGIN; + + +DROP TRIGGER wix_store_events; + +DROP FUNCTION process_raw_wix_event; + + +COMMIT; diff --git a/database_migrations/000006_process_raw_events_wix.up.sql b/database_migrations/000006_process_raw_events_wix.up.sql new file mode 100644 index 0000000..ce8f71f --- /dev/null +++ b/database_migrations/000006_process_raw_events_wix.up.sql @@ -0,0 +1,29 @@ +BEGIN; + + +CREATE OR REPLACE FUNCTION process_raw_wix_event() RETURNS TRIGGER AS $process_raw_wix_event$ + BEGIN + INSERT INTO wix_store_events ( + platform, + store_id, + event_timestamp, + event_id + ) + SELECT + NEW.platform, + NEW.store_id, + NEW.event_timestamp, + NEW.event_id; + RETURN NULL; + END; +$process_raw_wix_event$ LANGUAGE plpgsql; + +CREATE OR REPLACE TRIGGER wix_store_events + AFTER INSERT ON raw_store_events + FOR EACH ROW + WHEN (NEW.platform = 'wix') + EXECUTE FUNCTION process_raw_wix_event(); + + +COMMIT; + diff --git a/internal/domains/raw_events/.events.go.swp b/internal/domains/raw_events/.events.go.swp deleted file mode 100644 index d01f698ea05877546d8b9e113216bfa165db55ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O>7)B6vv&SiVhG!AS!V|&LGNe*v_0jgtmFq9ib0Cu&}SWZLkVh1*`&A0jq#jz$#!BunJfO{(B0jbcno)VI3-l_EJ#} z?JA2;TUZ6G0#*U5fK|XMU=^?mSOu&CRspMkRlq9nFI0eqgp`gD@}Yy|@&Et+-~Yef zN61ZZ1AGs@248~D!FBKfxB`~I0+uBs$H6gh6#RKFAwPm|!3KB-yanC_Z-6E6 z40r-O432__z+v#mFd?_VZ(tK_fGIErZr(%4FW_hJ4Y&?2fo1R_SOPUL1)c+k!RFnB z`~+@*ufPWQ2)qqm0}^xq1G8WX90!kpVQ>W80e-)Wkng}3;9al+&Vf3pfIGn<@E3I5 z1fPKo@G1BhXuaPD*T8$gK2`y%fK|XMU=^?m{O=W5Unh>_sw)$kM1$`!Ar8L#jjfLI zYElZ>D!DBd#XO`+(3H!TkR5ut%jH^?KGt(9luKDAPSnybbYvWEV|tZ1sB_jU_~p3z zx@F4NV!=YUN;4&+q+R0P`Mj!}8<~rkjYwPI;a*MO&#a#{jkzCZk;PG1r6Wb-eAMBY zVx82hXD@RpO1URT*TczftHCg;-xbl)wpvTMx8+S;LH5Wx!{t$)C&axu{ZVA&rZH1m z26Vl$Z575|UmeWP5q0 zLc|rlvam?eGx275%vr`u81=xSg+Ybxy>bJ|nc|eukSW$gSDit^0~Lwn;DxO1wg#sY z@g{@I-AI~oly~l$+b6IcK8`TjgG1-T*82*&VsV-1GrXr2tWY-erNISx?AtA{GIQmtj{ubNZCN30+)@Zj3#fWpPJ@d_0UY){MDZ&Sxv(z4I94UXxU& zrO|#C+Qz6NWVx8D^?ZgLCv0L@>GrLo=9rm&OzA&n3xnI^@G!m2fr5b#WK`q`35>)2 zk~EEj*%iyAIC1m=qo0eJz)E7hX`W@Q&9Rov3fwvgsNRd_VCXm1&*nX8af+ed#M-02 ze=Zaq@>7rG5p?fvptNpA5WPVLg(bPyZ8LpBVZ#xO!)-@ux!d$`E8f4zf=hvqp8m=i zU1-_d15LD}11wx5