20 lines
976 B
SQL
20 lines
976 B
SQL
-- 013: AML detection alerts (compliance-service)
|
|
CREATE TABLE IF NOT EXISTS aml_alerts (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID NOT NULL REFERENCES users(id),
|
|
alert_type VARCHAR(30) NOT NULL CHECK (alert_type IN (
|
|
'buy_transfer_withdraw', 'fan_out', 'self_dealing', 'cross_border', 'structuring'
|
|
)),
|
|
severity VARCHAR(10) NOT NULL CHECK (severity IN ('low', 'medium', 'high', 'critical')),
|
|
details JSONB NOT NULL DEFAULT '{}',
|
|
status VARCHAR(20) NOT NULL DEFAULT 'open' CHECK (status IN ('open', 'investigating', 'resolved', 'escalated', 'dismissed')),
|
|
resolved_by UUID REFERENCES users(id),
|
|
resolved_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_aml_alerts_user_id ON aml_alerts(user_id);
|
|
CREATE INDEX idx_aml_alerts_type ON aml_alerts(alert_type);
|
|
CREATE INDEX idx_aml_alerts_severity ON aml_alerts(severity);
|
|
CREATE INDEX idx_aml_alerts_status ON aml_alerts(status);
|