CREATE TABLE IF NOT EXISTS audit_logs ( id BIGSERIAL PRIMARY KEY, tenant_id UUID NOT NULL, user_id BIGINT NOT NULL, action VARCHAR(64) NOT NULL, resource VARCHAR(128) NOT NULL, resource_id VARCHAR(128), detail TEXT, ip VARCHAR(64), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_audit_logs_tenant_id ON audit_logs(tenant_id); CREATE INDEX IF NOT EXISTS idx_audit_logs_user_id ON audit_logs(user_id); CREATE INDEX IF NOT EXISTS idx_audit_logs_action ON audit_logs(action); CREATE INDEX IF NOT EXISTS idx_audit_logs_resource ON audit_logs(resource); CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at);