create schema if not exists admin;

CREATE TABLE if not exists admin.cls();
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS clsid text;
ALTER TABLE admin.cls DROP CONSTRAINT IF EXISTS admin_cls_pkey;
ALTER TABLE admin.cls DROP CONSTRAINT IF EXISTS admin_cls_unique;

ALTER TABLE admin.cls ALTER COLUMN clsid SET NOT NULL; 
ALTER TABLE admin.cls ALTER COLUMN clsid SET DEFAULT next_id();
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS name text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS data text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS type text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS code text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS parent text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS ua text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS en text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS module text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS files json;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
ALTER TABLE admin.cls ALTER COLUMN cdate SET DEFAULT (now())::timestamp without time zone;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS editor_id text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS uid text;
ALTER TABLE admin.cls ALTER COLUMN uid SET NOT NULL;
ALTER TABLE admin.cls ALTER COLUMN uid SET DEFAULT '1'::text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS icon text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS color text;
ALTER TABLE admin.cls ADD COLUMN IF NOT EXISTS hash text;

ALTER TABLE admin.cls ADD CONSTRAINT admin_cls_pkey PRIMARY KEY (clsid);
ALTER TABLE admin.cls ADD CONSTRAINT admin_cls_unique UNIQUE (code, parent);

COMMENT ON COLUMN admin.cls.name IS 'Назва';
COMMENT ON COLUMN admin.cls.type IS 'Тип';
COMMENT ON COLUMN admin.cls.data IS 'SQL';
COMMENT ON COLUMN admin.cls.code IS 'Код';
COMMENT ON COLUMN admin.cls.parent IS 'Назва батьківського об''єкту';
COMMENT ON COLUMN admin.cls.module IS 'Модуль';
COMMENT ON COLUMN admin.cls.icon IS 'Іконка';
COMMENT ON COLUMN admin.cls.color IS 'Колір';
