-- Messages CREATE TABLE IF NOT EXISTS public.messages ( messageid UUID DEFAULT gen_random_uuid () NOT NULL, chatid UUID NOT NULL, message TEXT, "time" TIMESTAMP WITHOUT TIME ZONE NOT NULL, isread boolean DEFAULT FALSE NOT NULL, sender UUID NOT NULL ); -- Primary Key DO $$ BEGIN ALTER TABLE public.messages ADD CONSTRAINT messages_pkey PRIMARY KEY (messageid); EXCEPTION WHEN invalid_table_definition THEN RAISE NOTICE 'Primary key already exists. Ignoring...'; END $$; -- Foreign Key to Chats DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'messages_chatid_fkey' ) THEN ALTER TABLE public.messages ADD CONSTRAINT messages_chatid_fkey FOREIGN KEY (chatid) REFERENCES public.chats (chatid) ON UPDATE CASCADE ON DELETE CASCADE; END IF; END $$; -- Foreign Key to Users DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'messages_user_fkey' ) THEN ALTER TABLE public.messages ADD CONSTRAINT messages_user_fkey FOREIGN KEY (sender) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE; END IF; END $$;