CREATE TABLE IF NOT EXISTS public.system_config (
  config_key   varchar(100) PRIMARY KEY,
  config_value text         NOT NULL,
  updated_at   timestamptz  NOT NULL DEFAULT now()
);

INSERT INTO public.system_config (config_key, config_value)
VALUES ('system_description', 'Sistema de formación para partners del equipo REW de Zinzino')
ON CONFLICT (config_key) DO NOTHING;

CREATE OR REPLACE FUNCTION public.fn_get_system_config(p_key varchar)
RETURNS text LANGUAGE sql STABLE AS $$
  SELECT config_value FROM public.system_config WHERE config_key = p_key;
$$;

CREATE OR REPLACE FUNCTION public.fn_set_system_config(p_key varchar, p_value text)
RETURNS void LANGUAGE sql AS $$
  INSERT INTO public.system_config (config_key, config_value, updated_at)
  VALUES (p_key, p_value, now())
  ON CONFLICT (config_key) DO UPDATE SET config_value = p_value, updated_at = now();
$$;

GRANT SELECT, INSERT, UPDATE ON public.system_config TO "elfi1953_stc-eu";
GRANT EXECUTE ON FUNCTION public.fn_get_system_config(varchar) TO "elfi1953_stc-eu";
GRANT EXECUTE ON FUNCTION public.fn_set_system_config(varchar, text) TO "elfi1953_stc-eu";
