1557 lines
37 KiB
SQL
1557 lines
37 KiB
SQL
-- PostgreSQL Database Schema
|
|
-- Database: database
|
|
-- Generated by RelSpec
|
|
|
|
-- Sequences for schema: public
|
|
-- Tables for schema: public
|
|
CREATE TABLE IF NOT EXISTS public.users (
|
|
active boolean NOT NULL DEFAULT true,
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
deleted_at timestamp,
|
|
email varchar(255) NOT NULL,
|
|
full_name varchar(255),
|
|
id varchar(36) NOT NULL,
|
|
password varchar(255) NOT NULL,
|
|
role varchar(50) NOT NULL DEFAULT 'user',
|
|
updated_at timestamp NOT NULL DEFAULT now(),
|
|
username varchar(255) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.api_keys (
|
|
active boolean NOT NULL DEFAULT true,
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
deleted_at timestamp,
|
|
expires_at timestamp,
|
|
id varchar(36) NOT NULL,
|
|
key varchar(255) NOT NULL,
|
|
key_prefix varchar(20),
|
|
last_used_at timestamp,
|
|
name varchar(255) NOT NULL,
|
|
permissions text,
|
|
updated_at timestamp NOT NULL DEFAULT now(),
|
|
user_id varchar(36) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.hooks (
|
|
active boolean NOT NULL DEFAULT true,
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
deleted_at timestamp,
|
|
description text,
|
|
events text,
|
|
headers text,
|
|
id varchar(36) NOT NULL,
|
|
method varchar(10) NOT NULL DEFAULT 'POST',
|
|
name varchar(255) NOT NULL,
|
|
retry_count integer NOT NULL DEFAULT '3',
|
|
secret varchar(255),
|
|
timeout integer NOT NULL DEFAULT '30',
|
|
updated_at timestamp NOT NULL DEFAULT now(),
|
|
url text NOT NULL,
|
|
user_id varchar(36) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.whatsapp_accounts (
|
|
account_type varchar(50) NOT NULL,
|
|
active boolean NOT NULL DEFAULT true,
|
|
config text,
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
deleted_at timestamp,
|
|
display_name varchar(255),
|
|
id varchar(36) NOT NULL,
|
|
last_connected_at timestamp,
|
|
phone_number varchar(50) NOT NULL,
|
|
session_path text,
|
|
status varchar(50) NOT NULL DEFAULT 'disconnected',
|
|
updated_at timestamp NOT NULL DEFAULT now(),
|
|
user_id varchar(36) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.event_logs (
|
|
action varchar(50),
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
data text,
|
|
entity_id varchar(36),
|
|
entity_type varchar(100),
|
|
error text,
|
|
event_type varchar(100) NOT NULL,
|
|
id varchar(36) NOT NULL,
|
|
ip_address varchar(50),
|
|
success boolean NOT NULL DEFAULT true,
|
|
user_agent text,
|
|
user_id varchar(36)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.sessions (
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
expires_at timestamp NOT NULL,
|
|
id varchar(36) NOT NULL,
|
|
ip_address varchar(50),
|
|
token varchar(255) NOT NULL,
|
|
updated_at timestamp NOT NULL DEFAULT now(),
|
|
user_agent text,
|
|
user_id varchar(36) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.message_cache (
|
|
account_id varchar(36) NOT NULL,
|
|
chat_id varchar(255) NOT NULL,
|
|
content text NOT NULL,
|
|
created_at timestamp NOT NULL DEFAULT now(),
|
|
from_me boolean NOT NULL,
|
|
id varchar(36) NOT NULL,
|
|
message_id varchar(255) NOT NULL,
|
|
message_type varchar(50) NOT NULL,
|
|
timestamp timestamp NOT NULL
|
|
);
|
|
|
|
-- Add missing columns for schema: public
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'active'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN active boolean NOT NULL DEFAULT true;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'deleted_at'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN deleted_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'email'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN email varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'full_name'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN full_name varchar(255);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'password'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN password varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'role'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN role varchar(50) NOT NULL DEFAULT 'user';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN updated_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND column_name = 'username'
|
|
) THEN
|
|
ALTER TABLE public.users ADD COLUMN username varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'active'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN active boolean NOT NULL DEFAULT true;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'deleted_at'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN deleted_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'expires_at'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN expires_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'key'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN key varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'key_prefix'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN key_prefix varchar(20);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'last_used_at'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN last_used_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN name varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'permissions'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN permissions text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN updated_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND column_name = 'user_id'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD COLUMN user_id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'active'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN active boolean NOT NULL DEFAULT true;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'deleted_at'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN deleted_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'description'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN description text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'events'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN events text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'headers'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN headers text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'method'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN method varchar(10) NOT NULL DEFAULT 'POST';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN name varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'retry_count'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN retry_count integer NOT NULL DEFAULT '3';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'secret'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN secret varchar(255);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'timeout'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN timeout integer NOT NULL DEFAULT '30';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN updated_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'url'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN url text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND column_name = 'user_id'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD COLUMN user_id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'account_type'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN account_type varchar(50) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'active'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN active boolean NOT NULL DEFAULT true;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'config'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN config text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'deleted_at'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN deleted_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'display_name'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN display_name varchar(255);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'last_connected_at'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN last_connected_at timestamp;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'phone_number'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN phone_number varchar(50) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'session_path'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN session_path text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'status'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN status varchar(50) NOT NULL DEFAULT 'disconnected';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN updated_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND column_name = 'user_id'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD COLUMN user_id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'action'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN action varchar(50);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'data'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN data text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'entity_id'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN entity_id varchar(36);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'entity_type'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN entity_type varchar(100);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'error'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN error text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'event_type'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN event_type varchar(100) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'ip_address'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN ip_address varchar(50);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'success'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN success boolean NOT NULL DEFAULT true;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'user_agent'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN user_agent text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND column_name = 'user_id'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD COLUMN user_id varchar(36);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'expires_at'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN expires_at timestamp NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'ip_address'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN ip_address varchar(50);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'token'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN token varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN updated_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'user_agent'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN user_agent text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND column_name = 'user_id'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD COLUMN user_id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'account_id'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN account_id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'chat_id'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN chat_id varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'content'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN content text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN created_at timestamp NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'from_me'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN from_me boolean NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN id varchar(36) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'message_id'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN message_id varchar(255) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'message_type'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN message_type varchar(50) NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND column_name = 'timestamp'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD COLUMN timestamp timestamp NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
-- Primary keys for schema: public
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('users_pkey', 'public_users_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.users DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND constraint_name = 'pk_public_users'
|
|
) THEN
|
|
ALTER TABLE public.users ADD CONSTRAINT pk_public_users PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('api_keys_pkey', 'public_api_keys_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.api_keys DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND constraint_name = 'pk_public_api_keys'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD CONSTRAINT pk_public_api_keys PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('hooks_pkey', 'public_hooks_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.hooks DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND constraint_name = 'pk_public_hooks'
|
|
) THEN
|
|
ALTER TABLE public.hooks ADD CONSTRAINT pk_public_hooks PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('whatsapp_accounts_pkey', 'public_whatsapp_accounts_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.whatsapp_accounts DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND constraint_name = 'pk_public_whatsapp_accounts'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD CONSTRAINT pk_public_whatsapp_accounts PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('event_logs_pkey', 'public_event_logs_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.event_logs DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND constraint_name = 'pk_public_event_logs'
|
|
) THEN
|
|
ALTER TABLE public.event_logs ADD CONSTRAINT pk_public_event_logs PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('sessions_pkey', 'public_sessions_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.sessions DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND constraint_name = 'pk_public_sessions'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD CONSTRAINT pk_public_sessions PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('message_cache_pkey', 'public_message_cache_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.message_cache DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND constraint_name = 'pk_public_message_cache'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD CONSTRAINT pk_public_message_cache PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
-- Indexes for schema: public
|
|
CREATE INDEX IF NOT EXISTS idx_users_deleted_at
|
|
ON public.users USING btree (deleted_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_api_keys_deleted_at
|
|
ON public.api_keys USING btree (deleted_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_api_keys_user_id
|
|
ON public.api_keys USING btree (user_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_hooks_deleted_at
|
|
ON public.hooks USING btree (deleted_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_hooks_user_id
|
|
ON public.hooks USING btree (user_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_whatsapp_accounts_deleted_at
|
|
ON public.whatsapp_accounts USING btree (deleted_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_whatsapp_accounts_user_id
|
|
ON public.whatsapp_accounts USING btree (user_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_event_logs_created_at
|
|
ON public.event_logs USING btree (created_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_event_logs_entity_id
|
|
ON public.event_logs USING btree (entity_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_event_logs_entity_type
|
|
ON public.event_logs USING btree (entity_type);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_event_logs_event_type
|
|
ON public.event_logs USING btree (event_type);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_event_logs_user_id
|
|
ON public.event_logs USING btree (user_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sessions_expires_at
|
|
ON public.sessions USING btree (expires_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sessions_user_id
|
|
ON public.sessions USING btree (user_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_message_cache_account_id
|
|
ON public.message_cache USING btree (account_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_message_cache_chat_id
|
|
ON public.message_cache USING btree (chat_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_message_cache_from_me
|
|
ON public.message_cache USING btree (from_me);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_message_cache_timestamp
|
|
ON public.message_cache USING btree (timestamp);
|
|
|
|
-- Unique constraints for schema: public
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND constraint_name = 'ukey_users_email'
|
|
) THEN
|
|
ALTER TABLE public.users ADD CONSTRAINT ukey_users_email UNIQUE (email);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'users'
|
|
AND constraint_name = 'ukey_users_username'
|
|
) THEN
|
|
ALTER TABLE public.users ADD CONSTRAINT ukey_users_username UNIQUE (username);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND constraint_name = 'ukey_api_keys_key'
|
|
) THEN
|
|
ALTER TABLE public.api_keys ADD CONSTRAINT ukey_api_keys_key UNIQUE (key);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND constraint_name = 'ukey_whatsapp_accounts_phone_number'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts ADD CONSTRAINT ukey_whatsapp_accounts_phone_number UNIQUE (phone_number);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND constraint_name = 'ukey_sessions_token'
|
|
) THEN
|
|
ALTER TABLE public.sessions ADD CONSTRAINT ukey_sessions_token UNIQUE (token);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'message_cache'
|
|
AND constraint_name = 'ukey_message_cache_message_id'
|
|
) THEN
|
|
ALTER TABLE public.message_cache ADD CONSTRAINT ukey_message_cache_message_id UNIQUE (message_id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
-- Check constraints for schema: public
|
|
-- Foreign keys for schema: public
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'api_keys'
|
|
AND constraint_name = 'fk_api_keys_user_id'
|
|
) THEN
|
|
ALTER TABLE public.api_keys
|
|
ADD CONSTRAINT fk_api_keys_user_id
|
|
FOREIGN KEY (user_id)
|
|
REFERENCES public.users (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'hooks'
|
|
AND constraint_name = 'fk_hooks_user_id'
|
|
) THEN
|
|
ALTER TABLE public.hooks
|
|
ADD CONSTRAINT fk_hooks_user_id
|
|
FOREIGN KEY (user_id)
|
|
REFERENCES public.users (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'whatsapp_accounts'
|
|
AND constraint_name = 'fk_whatsapp_accounts_user_id'
|
|
) THEN
|
|
ALTER TABLE public.whatsapp_accounts
|
|
ADD CONSTRAINT fk_whatsapp_accounts_user_id
|
|
FOREIGN KEY (user_id)
|
|
REFERENCES public.users (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'event_logs'
|
|
AND constraint_name = 'fk_event_logs_user_id'
|
|
) THEN
|
|
ALTER TABLE public.event_logs
|
|
ADD CONSTRAINT fk_event_logs_user_id
|
|
FOREIGN KEY (user_id)
|
|
REFERENCES public.users (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'sessions'
|
|
AND constraint_name = 'fk_sessions_user_id'
|
|
) THEN
|
|
ALTER TABLE public.sessions
|
|
ADD CONSTRAINT fk_sessions_user_id
|
|
FOREIGN KEY (user_id)
|
|
REFERENCES public.users (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;-- Set sequence values for schema: public
|
|
-- Comments for schema: public
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|