From 3ab90f25b304a988971834d4b8325333ab74603e Mon Sep 17 00:00:00 2001 From: Rikard Bartholf Date: Thu, 21 Aug 2025 11:09:06 +0200 Subject: [PATCH] Add "product-products".is_ai_generated (#495) * Add "product-products".is_ai_generated * Add v_analytics_products.is_ai_generated * Bump migration version * Cleanup --- migrations/000.569.sql | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 migrations/000.569.sql diff --git a/migrations/000.569.sql b/migrations/000.569.sql new file mode 100644 index 0000000..2e9229b --- /dev/null +++ b/migrations/000.569.sql @@ -0,0 +1,52 @@ +DROP VIEW IF EXISTS public.v_analytics_products; + +ALTER TABLE "product-products" + DROP COLUMN IF EXISTS "is_ai_generated"; + +ALTER TABLE "product-products" + ADD COLUMN "is_ai_generated" BOOLEAN NOT NULL DEFAULT false; + +-- View: public.v_analytics_products +CREATE VIEW public.v_analytics_products + AS + SELECT products.productid AS product_id, + products.path AS product_path, + products.visible, + products.browsable, + products.inserted AS product_inserted, + products.updated AS product_updated, + designers.designerid AS designer_id, + designers.name AS designer_name, + products.ref1, + products.ref2, + products.ref3, + artno.value AS artno, + name.value AS product_name, + width.value::integer AS width, + height.value::integer AS height, + copyright.value AS copyright, + batch.value AS batch, + products.is_ai_generated, + COALESCE(products.updated, products.inserted) AS last_updated, + ( SELECT s.uri + FROM v_interior_image_urls s + WHERE products.productid = s.productid AND (s.product_group = ANY (ARRAY[1, 3])) + ORDER BY s."position" + LIMIT 1) AS interior_primary_uri, + CASE + WHEN (EXISTS ( SELECT 1 + FROM "product-printproducts" s + WHERE s.groupid = 3 AND s.productid = products.productid)) THEN true + ELSE false + END AS repeating_pattern + FROM "product-products" products + LEFT JOIN designers ON products.designerid = designers.designerid + LEFT JOIN "product-products_fields" artno ON artno.fieldid = 1 AND artno.productid = products.productid + LEFT JOIN "product-products_fields" name ON name.fieldid = 2 AND name.productid = products.productid + LEFT JOIN "product-products_fields" width ON width.fieldid = 5 AND width.productid = products.productid + LEFT JOIN "product-products_fields" height ON height.fieldid = 3 AND height.productid = products.productid + LEFT JOIN "product-products_fields" copyright ON copyright.fieldid = 25 AND copyright.productid = products.productid + LEFT JOIN "product-products_fields" batch ON batch.fieldid = 36 AND batch.productid = products.productid; + +GRANT SELECT ON TABLE public.v_analytics_products TO datastudio; +GRANT SELECT ON TABLE public.v_analytics_products TO funnel;