-- zmeny tabuliek message pre doslu postu (#72904)

\encoding UTF8

-- varianty sprav doslych Slovenskou postou:
INSERT INTO message_medium_variant (medium, name, params) VALUES
	(5,'normal',''),
	(5,'doporučene',''),
	(5,'s doručenkou','');


-- nerozoznany typ spravy:
-- pouzit existujuci typ: 10 (Nezatriedené) a prislusny message_status (nizsie)


-- lehota na vybavenie:
ALTER TABLE message ADD COLUMN due DATE;
COMMENT ON COLUMN message.due IS 'Lehota na vybavenie doslej spravy';


-- nahradenie priznaku inbound niecim co ma viac moznosti:
BEGIN;

CREATE TABLE message_direction (
	id SERIAL NOT NULL,
	name VARCHAR NOT NULL,
	sysname VARCHAR,
	PRIMARY KEY (id)
);

COMMENT ON TABLE message_direction IS 'Smer pohybu spravy';
COMMENT ON COLUMN message_direction.name IS 'Zobrazovany nazov';
COMMENT ON COLUMN message_direction.sysname IS 'Nazov podla ktoreho sa orientuje programovy kod';

GRANT SELECT ON message_direction TO extranet;
GRANT SELECT ON message_direction TO billing;

INSERT INTO message_direction (name, sysname) VALUES
	('Došlá','in'),
	('Vyšlá','out'),
	('Interná', NULL);

ALTER TABLE message ADD COLUMN direction INT REFERENCES message_direction (id) ON UPDATE CASCADE ON DELETE RESTRICT;
COMMENT ON COLUMN message.direction IS 'Smer pohybu spravy - ID z ciselnika message_direction';

UPDATE message SET direction=(SELECT id FROM message_direction WHERE sysname='in') WHERE inbound=TRUE;
UPDATE message SET direction=(SELECT id FROM message_direction WHERE sysname='out') WHERE inbound=FALSE;

ALTER TABLE message ALTER COLUMN direction SET NOT NULL;
ALTER TABLE message DROP COLUMN inbound;

COMMIT;


-- stavy prijatych sprav:
INSERT INTO message_status (id, name, description) VALUES
-- stavy pri automatizovanom spracovani odchadzajucich sprav
--  10 | Čaká na schválenie            | Správa je pripravená na odoslanie, ale je potrebné to ešte ručne schváliť
--  11 | Čaká na dokončenie vytvárania | Správa je v procese automatizovaného vytvárania a ešte neprebehli všetky potrebné kroky

-- stavy pri automatizovanom spracovani prichadzajucich sprav
	(20, 'Nezatriedená', 'Ešte neprebehol automatizovaný pokus o rozoznanie správy'),
	(21, 'Nerozoznaná', 'Správa bola podrobená automatickému rozoznávaniu, ale bez úspechu - je nutný zásah človeka'),

-- vseobecne stavy platne pre viacere media pri prijimani
--  50 | Nevybavená                    | Východzí stav prijatých správ - správa došla do spoločnosti a je potrebné ju ďalej spracovať
--  51 | Rieši sa                      | Správu dostal na starosť konkrétny človek a čaká na vybavenie
--  52 | Vybavená                      | Správa bola spracovaná a na jej základe sa niečo podniklo
--  53 | Vzaté na vedomie              | Správa bola spracovaná a jej výsledkom je, že nie je potrebné nič robiť
--  55 | Späťvzatá                     | Správa nemala byt vygenerovaná ani odoslaná, je neplatná
	(54, 'Preposlaná', 'Správa bola spracovaná a výsledkom je, že bola poslaná ďalej do iného systému alebo inému príjemcovi'),

-- chybove a vynimocne stavy
--  90 | Nedoručiteľná                 | Správa sa vrátila ako definitívne nedoručená bez udania dôvodu
--  91 | Odmietnutá                    | Správa sa vrátila ako nedoručená pretože ju adresát odmietol prevziať
--  92 | Adresát neznámy               | Správa sa vrátila ako nedoručená pretože adresát je doručovateľovi neznámy
--  93 | Zrušená                       | Správa bola zrušená ešte pred jej odoslaním
	(99, 'Zmazaná', 'Správa nemá trvalý význam a po uplynutí lehoty je určená na zmazanie');


-- OCR / ASR jazyk, queue a vysledky:
-- jazyk zaznacit do mimetype: 'application/pdf; paper=a3; language=en' (RFC 2231 -> RFC 1766 -> ISO 639-1)
-- queue by nakoniec mohlo byt sucastou message_file - novy priznak:
ALTER TABLE message_file ADD COLUMN recognized BOOLEAN;
COMMENT ON COLUMN message_file.recognized IS 'Priznak ci priloha bola rozoznana OCR/ASR (true), alebo caka na rozoznanie (false), alebo sa jej rozoznavanie netyka (null)';

-- pocet stran:
ALTER TABLE message_file ADD COLUMN num_pages SMALLINT;
COMMENT ON COLUMN message_file.num_pages IS 'Pocet stran v dokumente';

-- vysledky sa ulozia do textovych suborov, po jednotlivych stranach
