-- Tablas y columna para CUPS

CREATE TABLE IF NOT EXISTS cups_referencia (
  codigo VARCHAR(20) PRIMARY KEY,
  descripcion TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS cups_cubiertos (
  codigo VARCHAR(20) PRIMARY KEY,
  descripcion TEXT NOT NULL,
  descripcion_busqueda TEXT,
  nivel VARCHAR(10),
  especialidad TEXT,
  activo BOOLEAN NOT NULL DEFAULT true
);

ALTER TABLE autorizacion
ADD COLUMN IF NOT EXISTS cup_codigo VARCHAR(20);

ALTER TABLE cups_cubiertos
ADD COLUMN IF NOT EXISTS activo BOOLEAN NOT NULL DEFAULT true;

ALTER TABLE cups_cubiertos
ADD COLUMN IF NOT EXISTS descripcion_busqueda TEXT;

ALTER TABLE cups_cubiertos
ADD COLUMN IF NOT EXISTS nivel VARCHAR(10);

ALTER TABLE cups_cubiertos
ADD COLUMN IF NOT EXISTS especialidad TEXT;

DO $$
BEGIN
  IF NOT EXISTS (
    SELECT 1
    FROM pg_constraint
    WHERE conname = 'autorizacion_cup_codigo_fk'
  ) THEN
    ALTER TABLE autorizacion
    ADD CONSTRAINT autorizacion_cup_codigo_fk
    FOREIGN KEY (cup_codigo)
    REFERENCES cups_cubiertos(codigo);
  END IF;
END $$;
