Tighten new carrier campaign recency filter
This commit is contained in:
parent
4f4edb5f00
commit
766cfcd671
1 changed files with 13 additions and 19 deletions
|
|
@ -204,25 +204,19 @@ def usable_email_filter(cols: set[str]) -> str:
|
|||
|
||||
|
||||
def startup_date_filter(cols: set[str], days: int) -> str:
|
||||
# FMCSA add_date is text in the seed migration. It is commonly YYYY-MM-DD or
|
||||
# MM/DD/YYYY depending on import source, so handle both and fall back to row
|
||||
# creation date if parsing fails.
|
||||
parts = []
|
||||
if "add_date" in cols:
|
||||
parts.append(
|
||||
"""
|
||||
CASE
|
||||
WHEN add_date ~ '^\\d{4}-\\d{2}-\\d{2}' THEN add_date::date
|
||||
WHEN add_date ~ '^\\d{1,2}/\\d{1,2}/\\d{4}$' THEN to_date(add_date, 'MM/DD/YYYY')
|
||||
ELSE NULL
|
||||
END >= CURRENT_DATE - (%(recent_days)s::int * INTERVAL '1 day')
|
||||
"""
|
||||
)
|
||||
if "created_at" in cols:
|
||||
parts.append("created_at >= NOW() - (%(recent_days)s::int * INTERVAL '1 day')")
|
||||
if not parts:
|
||||
return "TRUE"
|
||||
return "(" + " OR ".join(parts) + ")"
|
||||
# Use FMCSA's carrier add_date only. Do not fall back to our row created_at,
|
||||
# because historical FMCSA carriers can be newly imported into our database.
|
||||
if "add_date" not in cols:
|
||||
raise RuntimeError("fmcsa_carriers.add_date is required for new-carrier targeting")
|
||||
return """
|
||||
(
|
||||
CASE
|
||||
WHEN add_date ~ '^\\d{4}-\\d{2}-\\d{2}' THEN add_date::date
|
||||
WHEN add_date ~ '^\\d{1,2}/\\d{1,2}/\\d{4}$' THEN to_date(add_date, 'MM/DD/YYYY')
|
||||
ELSE NULL
|
||||
END
|
||||
) >= CURRENT_DATE - (%(recent_days)s::int * INTERVAL '1 day')
|
||||
"""
|
||||
|
||||
|
||||
def has_order_exclusion_clause(order_cols: set[str]) -> str:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue