DROP VIEW IF EXISTS public.v_funnel_orders; CREATE OR REPLACE VIEW public.v_funnel_orders AS SELECT orders.id AS order_id, orders.inserted AS order_date, orders.delivered, orders.newsletter, orders.credit_invoice, orders.canceled, orders.delivered_date, orders.country_code, orders.language, orders.delivery_country_code, orders.delivery_method, orders.delivery_price, orders.delivery_vat as vat, orders.customer_type, orders.payment_type, orders.currency, orders.exchange_rate, orders.exchange_rate_eur, orders.invoice_id, orders.contract_customer_id, orders.vat_number, orders.cancels_order_id, orders.cancelled_by_order_id, orders.order_sum, orders.order_sum / orders.exchange_rate AS order_sum_sek, orders.market, orders.locale, md5((billing_address.email || 'funnelsecret'::text)) AS email, md5((billing_address.phone || 'funnelsecret'::text)) AS phone, md5((billing_address.address1 || 'funnelsecret'::text)) AS billing_address_address1, md5((billing_address.address2 || 'funnelsecret'::text)) AS billing_address_address2, md5((billing_address.company_name || 'funnelsecret'::text)) AS billing_address_company_name, billing_address.country_code AS billing_address_country_code, billing_address.city AS billing_address_city, billing_address.zipcode AS billing_address_zipcode, md5((billing_address.first_name || 'funnelsecret'::text)) AS billing_address_first_name, md5((billing_address.last_name || 'funnelsecret'::text)) AS billing_address_last_name, billing_address.state AS billing_address_state, md5((delivery_address.address1 || 'funnelsecret'::text)) AS delivery_address_address1, md5((delivery_address.address2 || 'funnelsecret'::text)) AS delivery_address_address2, md5((delivery_address.company_name || 'funnelsecret'::text)) AS delivery_address_company_name, delivery_address.country_code AS delivery_address_country_code, delivery_address.city AS delivery_address_city, delivery_address.zipcode AS delivery_address_zipcode, md5((delivery_address.first_name || 'funnelsecret'::text)) AS delivery_address_first_name, md5((delivery_address.last_name || 'funnelsecret'::text)) AS delivery_address_last_name, delivery_address.state AS delivery_address_state FROM orders JOIN addresses billing_address ON billing_address.id = orders.billing_address_id LEFT JOIN addresses delivery_address ON delivery_address.id = orders.delivery_address_id WHERE orders.paid = 1; DROP VIEW IF EXISTS public.v_funnel_order_rows; CREATE VIEW v_funnel_order_rows AS SELECT r.id, r.order_id, r.inserted, r.type, r.sub_type, r.status, r.price, r.commission_amount, r.external_status, r.data->>'productId' AS product_id, r.data->>'material' AS material, r.data->>'artNo' AS artNo, r.data->>'designer' AS designer FROM order_rows r; DROP VIEW IF EXISTS public.v_funnel_discounts; CREATE VIEW v_funnel_discounts AS SELECT order_rows.order_id as orderid, order_rows.id as rowid, order_rows.data->>'type' as type, orders.delivery_vat as vat, (abs(price / exchange_rate))::float AS price_sek, order_rows.data->>'code' as code, order_rows.data->>'no_shipping' as no_shipping from order_rows JOIN orders on orders.id = order_rows.order_id WHERE order_rows.sub_type = 'discount_code'; GRANT SELECT ON v_funnel_orders TO funnel; GRANT SELECT ON v_funnel_order_rows TO funnel; GRANT SELECT ON v_funnel_discounts TO funnel;