gcx/backend/migrations/011_create_kyc_submissions.sql

26 lines
1.0 KiB
SQL

-- 011: KYC submissions (user-service / compliance-service)
CREATE TABLE IF NOT EXISTS kyc_submissions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id),
target_level SMALLINT NOT NULL CHECK (target_level BETWEEN 1 AND 3),
full_name VARCHAR(200),
id_type VARCHAR(20) CHECK (id_type IN ('passport', 'id_card', 'driver_license')),
id_number VARCHAR(50),
date_of_birth DATE,
id_front_url VARCHAR(500),
id_back_url VARCHAR(500),
selfie_url VARCHAR(500),
address TEXT,
annual_income NUMERIC(15,2),
net_worth NUMERIC(15,2),
status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'approved', 'rejected')),
reject_reason VARCHAR(500),
reviewed_by UUID REFERENCES users(id),
reviewed_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_kyc_user_id ON kyc_submissions(user_id);
CREATE INDEX idx_kyc_status ON kyc_submissions(status);