52
pkg/coredata/migrations/20260210T135740Z.sql
Normal file
52
pkg/coredata/migrations/20260210T135740Z.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
CREATE TYPE webhook_event_type AS ENUM (
|
||||
'meeting:created',
|
||||
'meeting:updated',
|
||||
'meeting:deleted',
|
||||
'vendor:created',
|
||||
'vendor:updated',
|
||||
'vendor:deleted'
|
||||
);
|
||||
|
||||
CREATE TABLE webhook_configurations (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
organization_id TEXT NOT NULL REFERENCES organizations(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
endpoint_url TEXT NOT NULL,
|
||||
selected_events webhook_event_type[] NOT NULL,
|
||||
encrypted_signing_secret BYTEA NOT NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL
|
||||
);
|
||||
|
||||
CREATE TYPE webhook_event_status AS ENUM (
|
||||
'PENDING',
|
||||
'PROCESSING',
|
||||
'DELIVERED'
|
||||
);
|
||||
|
||||
CREATE TABLE webhook_events (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
organization_id TEXT NOT NULL REFERENCES organizations(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
event_type webhook_event_type NOT NULL,
|
||||
status webhook_event_status NOT NULL,
|
||||
data JSONB NOT NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
processed_at TIMESTAMP WITH TIME ZONE
|
||||
);
|
||||
|
||||
CREATE TYPE webhook_call_status AS ENUM (
|
||||
'SUCCEEDED',
|
||||
'FAILED'
|
||||
);
|
||||
|
||||
CREATE TABLE webhook_calls (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
webhook_event_id TEXT NOT NULL REFERENCES webhook_events(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
webhook_configuration_id TEXT NOT NULL REFERENCES webhook_configurations(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
endpoint_url TEXT NOT NULL,
|
||||
status webhook_call_status NOT NULL,
|
||||
response JSONB,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL
|
||||
);
|
||||
Reference in New Issue
Block a user