.. _oper_db:

======================
Schéma databáze
======================

Komponenta má data uložena ve vlastní databázi PostgreSQL. Schéma spravuje
Liquibase (viz :ref:`config_migration`).

Fond
======

Tabulka: ``pv_fund``

Stažené archivní soubory (fondy) z PEvA.

.. list-table::
   :class: longtable
   :header-rows: 1
   :widths: 10 8 30

   * - Sloupec
     - Datový typ
     - Popis
   * - fund_id
     - long
     - primární klíč
   * - uuid
     - uuid
     - identifikátor fondu v PEvA
   * - fund_name
     - string
     - název fondu
   * - fund_number
     - string
     - evidenční číslo (jen u primárního NAD listu)
   * - institution_id
     - string
     - externí identifikátor instituce
   * - ruleset_code
     - string
     - kód pravidel (např. ZP2015)
   * - internal_code
     - string
     - interní kód (zatím nevyplňováno)
   * - date_range
     - string
     - časový rozsah fondu
   * - mark
     - string
     - značka fondu
   * - department_name
     - string
     - název oddělení v PEvA (pro výběr výchozích administrátorů fondu)


Stav stahování
================

Tabulka: ``property``

Klíč-hodnota pro inkrementální stahování (pozice ve stránkování a časová značka
poslední úspěšné synchronizace), např. ``PEVA_SEARCH_AFTER`` a
``PEVA_UPDATE_AFTER``.

.. list-table::
   :class: longtable
   :header-rows: 1
   :widths: 10 8 30

   * - Sloupec
     - Datový typ
     - Popis
   * - property_id
     - int
     - primární klíč
   * - name
     - string
     - název vlastnosti
   * - value
     - text
     - hodnota


.. _oper_db_elza_queue:

Odchozí fronta do Elza
===========================

Tabulka: ``elza_queue``

Obsahuje fondy připravené k odeslání do Elza. Po úspěšném odeslání je záznam
z tabulky odstraněn. V PEVA Connectoru je fronta určena pouze pro fondy (na
rozdíl od Imwhooseru, kde tatáž tabulka sloužila i pro entity).

.. list-table::
   :class: longtable
   :header-rows: 1
   :widths: 10 8 30

   * - Sloupec
     - Datový typ
     - Popis
   * - elza_queue_id
     - long
     - primární klíč
   * - fund_id
     - long
     - odkaz na odesílaný fond do tabulky ``pv_fund``
   * - status
     - text
     - text poslední chyby odeslání záznamu, null pokud není chyba
   * - request_id
     - uuid
     - identifikátor požadavku pro odeslání
   * - scope
     - string
     - kód oblasti (scope), do které se záznam v Elze odesílá
   * - action
     - string
     - obvykle NULL - položka k odeslání, hodnota ``DISABLED`` umožňuje zakázat
       odesílání záznamu
   * - create_time
     - timestamp
     - čas vložení záznamu do fronty
   * - send_time
     - timestamp
     - čas posledního pokusu o odeslání

.. note::

   Při převzetí databáze Imwhooseru zůstává v tabulce navíc sloupec
   ``entity_id`` (PEVA Connector jej nevyužívá). Lze jej odstranit úklidovým
   krokem - viz :ref:`config_migration`.
