INSERT INTO aml_violations (violation_code, description, threshold, severity) VALUES ('AML-01', 'Circular Trade', '{"window_hours": 72, "min_hops": 3}', 4), ('AML-02', 'Structuring (Smurfing)', '{"max_single_tx": 10000, "min_tx_count": 5, "window_hours": 24}', 3), ('AML-03', 'Shell Account Layering', '{"min_unverified_shell_accounts": 3}', 4), ('AML-04', 'Cross-Border Threshold Breach', '{"amount_usd": 10000000}', 5), ('AML-05', 'Timestamp Manipulation', '{"max_seconds_delta": 300}', 3), ('AML-06', 'Rapid In-Out', '{"window_minutes": 60}', 3), ('AML-07', 'Beneficial Owner Mismatch', '{"amount_usd": 1000000}', 4), ('AML-08', 'FX Rate Anomaly', '{"max_deviation_pct": 5}', 3), ('AML-09', 'Round-Trip Cross-Currency', '{"window_hours": 48, "max_loss_pct": 2}', 4), ('AML-10', 'Ghost Account Activity', '{"amount_usd": 5000000}', 3), ('AML-11', 'Concentration Risk', '{"max_counterparty_ratio_pct": 80}', 3), ('AML-12', 'Layered Correspondent', '{"min_correspondent_banks": 2}', 4), ('AML-13', 'Velocity Spike', '{"min_increase_pct": 500}', 3), ('AML-14', 'Mirror Transaction', '{"time_window_seconds": 30}', 3), ('AML-15', 'Memo Obfuscation', '{"amount_usd": 1000000}', 2), ('AML-16', 'Split Consolidation', '{"window_minutes": 60}', 4), ('AML-17', 'Time-Zone Laundering', '{"min_jurisdictions": 4}', 3), ('AML-18', 'Dormant Account Activation', '{"dormant_days": 180, "amount_usd": 2000000}', 3), ('AML-19', 'Fake Invoice Chain', '{"requires_vendor_registry_match": true}', 2), ('AML-20', 'Hybrid Compound', '{"min_combined_violations": 2}', 5) ON CONFLICT (violation_code) DO NOTHING;