config { type: "table", schema: "pphe_five9_gold", uniqueKey: ["SESSION_ID", "TIMESTAMP", "DNIS"], assertions: { uniqueKey: ["SESSION_ID", "TIMESTAMP", "DNIS"], nonNull: ["SESSION_ID", "TIMESTAMP", "DNIS", "AGENT_GROUP_ID", "SKILL_ID"], rowConditions: [ 'BOARD_PROPERTY_GROUP <> "ADD"', 'DISPOSITION_GROUP <> "NOT_MAPPED"', 'CAMPAIGN_GROUP <> "NOT_MAPPED"', 'DISPOSITION_ID <> 0', 'DISPOSITION_GROUP_ID <> 0', 'CAMPAIGN_ID <> 0', 'CAMPAIGN_GROUP_ID <> 0', ] }, tags: ["calls_report"], description: "Exporting last 7 days of CALLS table" } --Extraction and transformation of fields that are used in Board load further. Contains last 7 days select sc.SESSION_ID, sc.DNIS, sc.TIMESTAMP, date(sc.TIMESTAMP) DATE, EXTRACT(HOUR FROM sc.TIMESTAMP) HOUR, EXTRACT(MONTH FROM sc.TIMESTAMP) MONTH, EXTRACT(YEAR FROM sc.TIMESTAMP) YEAR, sc.DAY_OF_WEEK, sc.CALL_ID, sc.ROUTING_HOTEL_NAME, case when sc.ROUTING_HOTEL_NAME is null then '_' else ifnull(p.BOARD_PROPERTY_GROUP, 'ADD') --for check of the missed properties end BOARD_PROPERTY_GROUP, sc.AGENT_ID, sc.AGENT_NAME, a.LANGUAGES, a.CODE LANGUAUGE_ID, a.AGENT_GROUP_ID, sc.AGENT_GROUP, COALESCE(d.DISPOSITION_ID, 0) as DISPOSITION_ID, sc.DISPOSITION, COALESCE(d.DISPOSITION_GROUP_ID, 0) as DISPOSITION_GROUP_ID, COALESCE(d.DISPOSITION_GROUP, 'NOT_MAPPED') as DISPOSITION_GROUP, COALESCE(c.CAMPAIGN_ID, 0) as CAMPAIGN_ID, sc.CAMPAIGN, COALESCE(c.CAMPAIGN_GROUP_ID, 0) as CAMPAIGN_GROUP_ID, COALESCE(c.CAMPAIGN_GROUP, 'NOT_MAPPED') as CAMPAIGN_GROUP, sc.SKILL, s.SKILL_ID, sc.CALL_TIME, sc.CALL_TIME_FORMATTED, sc.RING_TIME, sc.RING_TIME_FORMATTED, sc.TALK_TIME, sc.TALK_TIME_FORMATTED, sc.SPEED_OF_ANSWER, sc.SPEED_OF_ANSWER_FORMATTED, sc.AFTER_CALL_WORK_TIME, sc.AFTER_CALL_WORK_TIME_FORMATTED, sc.HOLD_TIME, sc.HOLD_TIME_FORMATTED, sc.TALK_TIME_LESS_HOLD_AND_PARK, sc.TALK_TIME_LESS_HOLD_AND_PARK_FORMATTED, sc.TRANSFERS, sc.ABANDONED, sc.CALLS, sc.ANI, c.CAMPAIGN_TYPE_ID, sc.CAMPAIGN_TYPE, "PHONE" MEDIA_TYPE_ID, sc.TOTAL_QUEUE_TIME, sc.TOTAL_QUEUE_TIME_FORMATTED, sc.HANDLE_TIME, sc.HANDLE_TIME_FORMATTED, from ${ref("stg_calls")} sc left join ${ref("stg_AGENT")} a on sc.AGENT_ID = a.AGENT_ID left join ${ref("stg_DISPOSITION")} d on sc.DISPOSITION = d.DISPOSITION left join ${ref("stg_CAMPAIGN")} c on sc.CAMPAIGN = c.CAMPAIGN left join ${ref("MAPPING_PROPERTY_CALLS")} p on sc.Routing_Hotel_Name = p.ROUTING_HOTEL_NAME left join ${ref("MAPPING_SKILL")} s on sc.SKILL = s.SKILL where date(sc.TIMESTAMP) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) and date(sc.TIMESTAMP) < CURRENT_DATE()