-- Potenziali Groups Table
CREATE TABLE IF NOT EXISTS public.potenziali_groups (
    id UUID DEFAULT gen_random_uuid () NOT NULL,
    name TEXT NOT NULL,
    color TEXT DEFAULT 'blue' NOT NULL
);
-- Primary Key
DO $$ 
BEGIN
    IF NOT EXISTS (
        SELECT 1 FROM pg_constraint 
        WHERE conname = 'potenziali_groups_pkey' 
        AND conrelid = 'public.potenziali_groups'::regclass
    ) THEN
        ALTER TABLE public.potenziali_groups
        ADD CONSTRAINT potenziali_groups_pkey PRIMARY KEY (id);
    END IF;
END $$;

-- Foreign Key to Potenziali Groups
DO $$
BEGIN 
    IF NOT EXISTS (
        SELECT 1 FROM pg_constraint 
        WHERE conname = 'potenziali_group_fk'
        AND conrelid = 'public.potenziali'::regclass
    ) THEN
        ALTER TABLE public.potenziali 
        ADD CONSTRAINT potenziali_group_fk 
        FOREIGN KEY (potenziali_group_id) REFERENCES public.potenziali_groups (id) 
        ON UPDATE CASCADE ON DELETE CASCADE;
    END IF;
END $$;

-- Create Index on Potenziali Group ID
DO $$
BEGIN
    IF NOT EXISTS (
        SELECT 1 FROM pg_indexes 
        WHERE indexname = 'idx_potenziali_group_id'
    ) THEN
        CREATE INDEX idx_potenziali_group_id 
        ON public.potenziali (potenziali_group_id);
    END IF;
END $$;