-- TPAP: RISK200 -- DROP TABLE team_kingkong.tpap_risk200_breaches; -- CREATE TABLE team_kingkong.tpap_risk200_breaches AS INSERT INTO team_kingkong.tpap_risk200_breaches with temp_tpap_base as (SELECT DISTINCT bt.txn_id, bt.scope_cust_id, bt.payer_vpa, bt.payee_vpa, bt.txn_date, bt.txn_amount, st.category, COALESCE(rd.upi_subtype, CASE WHEN st.category = 'LITE_MANDATE' THEN 'UPI_LITE_MANDATE' ELSE '' END) AS upi_subtype FROM (SELECT txn_id, scope_cust_id, MAX(CASE WHEN participant_type = 'PAYER' THEN vpa END) AS payer_vpa, MAX(CASE WHEN participant_type = 'PAYEE' THEN vpa END) AS payee_vpa, MAX(created_on) AS txn_date, MAX(amount) AS txn_amount FROM switch.txn_participants_snapshot_v3 WHERE DATE(dl_last_updated) BETWEEN DATE '2025-01-01' AND DATE '2025-01-31' AND DATE(created_on) BETWEEN DATE '2025-01-01' AND DATE '2025-01-31' GROUP BY txn_id, scope_cust_id) bt INNER JOIN (SELECT txn_id, category FROM switch.txn_info_snapshot_v3 WHERE DATE(dl_last_updated) BETWEEN DATE '2025-01-01' AND DATE '2025-01-31' AND DATE(created_on) BETWEEN DATE '2025-01-01' AND DATE '2025-01-31' AND UPPER(status) = 'SUCCESS') st ON bt.txn_id = st.txn_id INNER JOIN ( SELECT DISTINCT txnid, REGEXP_REPLACE(CAST(json_extract(request, '$.evaluationType') AS varchar), '"', '') AS upi_subtype FROM tpap_hss.upi_switchv2_dwh_risk_data_snapshot_v3 WHERE DATE(dl_last_updated) BETWEEN DATE '2025-01-01' AND DATE '2025-01-31' AND (LOWER(REGEXP_REPLACE(CAST(json_extract(request, '$.requestPayload.payerVpa') AS varchar), '"', '')) LIKE '%@paytm%' OR LOWER(REGEXP_REPLACE(CAST(json_extract(request, '$.requestPayload.payerVpa') AS varchar), '"', '')) LIKE '%@pt%') AND json_extract_scalar(response, '$.action_recommended') <> 'BLOCK') rd ON bt.txn_id = rd.txnid WHERE (payer_vpa LIKE '%@paytm%') OR (payer_vpa LIKE '%@pt%')), temp_blacklist AS (SELECT vpa AS blacklisted_vpa, DATE(FROM_UNIXTIME(CAST("timestamp" AS double) / 1000)) AS blacklist_date FROM team_kingkong.upi_blacklist_vpa_shivam WHERE "timestamp" IS NOT NULL AND "timestamp" <> '' AND DATE(FROM_UNIXTIME(CAST("timestamp" AS double) / 1000)) <= DATE '2025-01-31') SELECT * FROM (SELECT tb.txn_id, tb.scope_cust_id, tb.payer_vpa, tb.payee_vpa, tb.txn_date, tb.txn_amount, tb.category, tb.upi_subtype, COALESCE(pv.blacklisted_vpa, rv.blacklisted_vpa) AS blacklisted_vpa, COALESCE(pv.blacklist_date, rv.blacklist_date) AS blacklist_date, 'RISK200' AS risk_code, 'upi_blacklisted_vpa' AS rule_name FROM temp_tpap_base tb LEFT JOIN temp_blacklist pv ON tb.payer_vpa = pv.blacklisted_vpa AND tb.txn_date > pv.blacklist_date LEFT JOIN temp_blacklist rv ON tb.payee_vpa = rv.blacklisted_vpa AND tb.txn_date > rv.blacklist_date) WHERE blacklisted_vpa IS NOT NULL AND blacklist_date < DATE(txn_date);