feat(alerts): split interest.stale into worked-then-quiet + new-untouched (interest.no_activity)
- interest.stale now fires only for interests with real in-system follow-up (contact log / note / update audit) that went quiet 14+ days. - new interest.no_activity rule covers never-touched, non-imported interests. - guard interest.high_value_silent against imported-untouched hot leads. - keys off migration_source_links ledger to identify the bulk import, so the imported backlog matches neither rule and the engine auto-resolves the flood. - test teardown: delete interest_contact_log + test migration ledger rows. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,7 @@ export async function teardown() {
|
||||
, del_files AS (DELETE FROM files WHERE port_id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
, del_ft AS (DELETE FROM form_templates WHERE port_id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
, del_gr AS (DELETE FROM generated_reports WHERE port_id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
, del_icl AS (DELETE FROM interest_contact_log WHERE port_id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
, del_int AS (DELETE FROM interests WHERE port_id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
, del_ib AS (DELETE FROM interest_berths WHERE berth_id IN (SELECT id FROM berths WHERE port_id IN (SELECT id FROM doomed)) RETURNING 1)
|
||||
, del_inv AS (DELETE FROM invoices WHERE port_id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
@@ -69,5 +70,8 @@ export async function teardown() {
|
||||
, del_ports AS (DELETE FROM ports WHERE id IN (SELECT id FROM doomed) RETURNING 1)
|
||||
SELECT 1
|
||||
`);
|
||||
// migration_source_links has no port_id FK; purge test-only ledger rows by
|
||||
// the marker applied_id our alert tests use.
|
||||
await db.execute(sql`DELETE FROM migration_source_links WHERE applied_id = 'test-apply'`);
|
||||
await closeDb();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user