

DROP TABLE IF EXISTS raena_analytics.loyalty_reseller_stage1;

CREATE TABLE raena_analytics.loyalty_reseller_stage1 AS
SELECT cast(createdat+interval'7 Hours' as date) created_date,
       transactionid,
       eventtype,
       resellerid ,
       email,
       mobile,
       C.name tier_name,
       A.status ,
       points,
       CASE
           WHEN lms_orderid LIKE 'OD%' THEN lms_orderid
       END order_id,
       totalamount
FROM (select distinct  * from raena_analytics.lms_transactions) A
LEFT JOIN raena_user_management.user B ON A.resellerid = cast(B.id as varchar)
LEFT JOIN raena_user_management.tier C ON A.tierid = cast(C.id as varchar) ;


DROP TABLE IF EXISTS raena_analytics.loyalty_total_orders;

CREATE TABLE raena_analytics.loyalty_total_orders AS
SELECT cast(A.created_at+interval'7 Hours' as date) AS created_date ,
       A.reseller_id ,
       json_extract_path_text(A.reseller_info,'name',true) reseller_name,
       json_extract_path_text(A.reseller_info,'email',true) reseller_email,
       json_extract_path_text(A.reseller_info,'mobile',true) reseller_mobile,
       json_extract_path_text(A.reseller_info,'tierName',true) reseller_tier_name,
       A.payment_status,
       A.id order_id,
       A.status order_status,
       A.payment_amount payment_price
FROM raena_order_management.order A
where A.created_at::date >='2021-01-01';


drop table if exists raena_analytics.loyalty_base_1;


create table  raena_analytics.loyalty_base_1
as
select B.created_date,
       coalesce(B.resellerid,A.reseller_id) reseller_id,
       A.reseller_name,
       coalesce(B.email,A.reseller_email) reseller_email,
       coalesce(B.mobile,A.reseller_mobile) reseller_mobile,
       coalesce(B.tier_name,A.reseller_tier_name) reseller_tier_name,
       A.payment_status,
       A.order_id,
       A.payment_price,
       A.order_status,
       B.transactionid,
       B.eventtype,
       B.resellerid lm_reseller,
       B.email lm_email,
       B.mobile lm_mobile,
       B.tier_name,
       B.status ,
       B.order_id lm_orders,
       totalamount totalamount,
       points loyalty_point
from   raena_analytics.loyalty_reseller_stage1 B left join raena_analytics.loyalty_total_orders  A
 on  A.order_id = B.order_id;


