gcx/backend/migrations/013_create_aml_alerts.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);