{{ 
    config(
        materialized='incremental',
        engine="MergeTree",
        order_by='ts_code, time_id',
        unique_key=['ts_code', 'time_id'],
        incremental_strategy='delete+insert',
    )
}}

Select 
    StgMinutes.ts_code As ts_code,
    toYYYYMMDDhhmmss(toDateTime(`StgMinutes`.`trade_time`)) As time_id,
    StgMinutes.close As close,
    StgMinutes.open As open,
    StgMinutes.high As high,
    StgMinutes.low As low,
    StgMinutes.vol As vol,
    StgMinutes.amount As amount
From {{ source('finance', 'stg.tushare_minutes') }} As StgMinutes 
where 1 = 1
{% if is_incremental() %}
    And StgMinutes.trade_time >= (Select formatDateTimeInJodaSyntax(YYYYMMDDhhmmssToDateTime(max(time_id)), 'yyyy-MM-dd hh:mm:ss') From {{ this }})
{% endif %}
{% if 'dev' in target.name %}
    And StgMinutes.trade_time >= formatDateTimeInJodaSyntax(dateAdd(Month,-1,today()), 'yyyy-01-01 00:00:00')
{% elif target.name == 'test' %}
    And StgMinutes.trade_time >= formatDateTimeInJodaSyntax(dateAdd(Year,-1,today()), 'yyyy-01-01 00:00:00')
{% endif %}