16 lines
660 B
SQL
16 lines
660 B
SQL
-- 043: SMS delivery logs table (audit trail)
|
|
CREATE TABLE IF NOT EXISTS sms_logs (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
user_id UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
phone VARCHAR(20) NOT NULL,
|
|
type VARCHAR(20) NOT NULL CHECK (type IN ('REGISTER', 'LOGIN', 'RESET_PASSWORD', 'CHANGE_PHONE')),
|
|
status VARCHAR(20) NOT NULL DEFAULT 'PENDING' CHECK (status IN ('PENDING', 'SENT', 'DELIVERED', 'FAILED')),
|
|
provider VARCHAR(50),
|
|
provider_id VARCHAR(100),
|
|
error_msg TEXT,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_sms_logs_phone ON sms_logs(phone);
|
|
CREATE INDEX idx_sms_logs_created ON sms_logs(created_at);
|