info:
  description: No description
  license:
    name: MIT
  title: NonameApp
  version: 0.0.0
openapi: 3.0.0
paths:
  /cancel_order:
    post:
      description: "\n        Zruší objednávku\n\n        Parametry:\n           \
        \ str    distributor_key    distributorův klíč (povinné)\n            str\
        \    order_id           identifikace objednávky (povinné)\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
                order_id:
                  type: string
              required:
              - order_id
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  cancel_order:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Zruší objednávku
  /category_list:
    post:
      description: "\n        <h2>Vrátí seznam produktů v kategorii</h2>\n\n     \
        \   <h3>Parametry:</h3>\n        <ul>\n            <li><b>str distributor_key</b>\
        \ - distributorův klíč (povinné)</li>\n            <li><b>str provider</b>\
        \ - název providera (povinné)</li>\n            <li><b>int category_id</b>\
        \ - id kategorie (povinné)</li>\n            <li><b>int offset</b> - pořadí\
        \ prvního vypsaného produktu v seznamu</li>\n            <li><b>bool available_only</b>\
        \ - True a nezadano vrati pouze dostupne polozky, False vrati polozky vsech\
        \ stavu</li>\n            <li><b>int count</b> - počet vypsaných produktů</li>\n\
        \            <li><b>filters</b> - filtruje výsledky podle zadaných parametrů\
        \ (viz níže)</li>\n            <li><b>order</b> - řadí výsledek podle zadaných\
        \ parametru (viz níže)</li>\n        </ul>\n\n        <h3>Order:</h3>\n  \
        \      <p>seznam objektu</p>\n        <pre>\n        [{\"column\": &lt;razeni&gt;,\n\
        \         \"ascending\": &lt;vzestupne?&gt;},\n         ... ]\n        </pre>\n\
        \        <p>povolene hodnoty &lt;razeni&gt;:</p>\n        <ul>\n         \
        \   <li>\"title\"</li>\n            <li>\"release_date\" - datum uvedení do\
        \ distribuce</li>\n            <li>\"created_date\" - datum nahrávky</li>\n\
        \            <li>\"default\"</li>\n        </ul>\n        <p>&lt;vzestupne?&gt;\
        \ je true nebo false</p>\n\n        <h3>Filters:</h3>\n        <p>objekt {&lt;klic&gt;:\
        \ &lt;hodnota&gt;, ...}</p>\n        <ul>\n            <li><b>flag</b>: id\
        \ flagu (produkty s uvedeným flagem)</li>\n            <li><b>flags</b>: seznam\
        \ id flagů, (produkty s danými flagy)</li>\n            <li><b>author</b>:\
        \ jmeno autora (produkty s autory jejichž jméno obsahuje zadaný řetězec)</li>\n\
        \            <li><b>type</b>: id typu (produkty s daným typem obsahu)</li>\n\
        \            <li><b>state</b>: id stavu (produkty které jsou v uvedeném stavu)\
        \ - FUNKCNOST MOMENTALNE ZARUCENA JEN PRO core_provider</li>\n           \
        \ <li><b>last_update</b>: čas od kdy chci změněné položky ve formátu \"2015-12-31\
        \ 23:59:59\" (vrátí položky, které se změnili od zadaném čase)</li>\n    \
        \        <li><b>last_update_price</b>: čas od kdy chci změněné položky (vrátí\
        \ položky, kterým se změnila cena po zadaném čase)</li>\n            <li><b>last_update_meta</b>:\
        \ čas od kdy chci změněné položky (vrátí položky, kterým se změnila metadata\
        \ po zadaném čase)</li>\n            <li><b>last_id</b>: item_id (všechny\
        \ položky jejichž id je vyšší než zadané) - podporováno pouze core_provider</li>\n\
        \        </ul>\n\n        <h3>Návratový objekt obsahuje:</h3>\n        <ul>\n\
        \            <li><b>totalCount</b> - obsahuje celkový počet produktů v kategorii</li>\n\
        \            <li><b>content</b> - seznam objektů s informacemi o produktech\
        \ vybraných podle zadaných parametrů</li>\n        </ul>\n\n        <h3>Popis\
        \ prvků v objektu produktu:</h3>\n        <p>Všechny prvky nemusí být vyplněny\
        \ (závisí na providerovi). Některé prvky jsou \"specifické pro providera\"\
        \ - většinou se jedná o id.</p>\n\n        <pre>\n        {\n            provider:\
        \ poskytovatel produktu\n            id: identifikator produktu u poskytovatele\n\
        \            title: {\n            CZ|SK|EN: název\n            }\n      \
        \      subtitle: {\n            CZ|SK|EN: podtitul\n            }\n      \
        \      safe_title: {\n            CZ|SK|EN: safe title (bez háčků/čárek, mezery\
        \ -> _, pouze alfanumerické znaky a _-.\n            }\n            description:\
        \ {\n            CZ|SK|EN: popis\n            }\n            release_date:\
        \ datum vydání\n            available_from: dostupné od data\n           \
        \ available_to: dostupné do data\n            authors: [\n            {\n\
        \                name: jméno autora,\n                role: popis role\n \
        \           }\n            ]\n            previews: [\n            {\n   \
        \             name: název,\n                purpose: účel,\n             \
        \   location: link\n            }\n            ]\n            images: [\n\
        \            {\n                name: název,\n                purpose: účel,\n\
        \                location: link\n            }\n            ]\n          \
        \  files: [\n            {\n                name: název,\n               \
        \ purpose: účel,\n                location: link\n            }\n        \
        \    ]\n            flags: [\n            {\n                id: identifikace\
        \ flagu,\n                name: název flagu\n            }\n            ]\n\
        \            categories: [\n            {\n                id: identifikace\
        \ kategorie,\n                name: název kategorie\n            }\n     \
        \       ]\n            types: [\n            {\n                type_id: identifikace\
        \ typu,\n                name: název typu,\n                prices: {\n  \
        \              CZK|EUR: cena\n                },\n                variants:\
        \ [\n                {\n                    purpose_id: id varianty,\n   \
        \                 purpose: popis varianty\n                }\n           \
        \     ]\n            }\n            ]\n            attributes: {\n       \
        \     length_seconds: délka v sekundách,\n            copyright: copyright,\n\
        \            popularity: popularita (0-10),\n            identification: {\n\
        \                grid|upc|isrc|ean|cro|generic: identifikace\n           \
        \ },\n            track_number: pořadí tracku,\n            volume_number:\
        \ pořadí volume\n            }\n            status: presell|available|canceled\n\
        \            regions: {\n            cz|sk|global: {\n                download:\
        \ bool,\n                stream: bool\n            }\n            }\n    \
        \        campaigns: [\n            {\n                id: id kampaně,\n  \
        \              name: název kampaně,\n                valid_from: platnost\
        \ od,\n                valid_to: platnost do,\n                attributes:\
        \ atributy kampaně,\n                price_change: {\n                change_type:\
        \ fix|ratio|sub,\n                amount: {\n                    CZK|EUR:\
        \ hodnota\n                },\n                types: typy kterých se kampan\
        \ tyka\n                }\n            }\n            ]\n        }\n     \
        \   </pre>\n\n        <p>Pokud si synchronizujete katalog, a stav položky\
        \ je \"canceled\", odeberte prosím položku z vašeho katalogu.</p>\n      \
        \  "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                available_only:
                  type: boolean
                category_id:
                  type: integer
                count:
                  type: integer
                distributor_key:
                  type: string
                filters:
                  properties: {}
                  type: object
                offset:
                  type: integer
                order:
                  items:
                    properties: {}
                    type: object
                  type: array
                provider:
                  type: string
                show_details:
                  type: boolean
              required:
              - provider
              - category_id
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  category_list:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Vrátí seznam produktů v kategorii</h2>
  /category_list_nullstream:
    post:
      description: "\n        <p>Vrací stream produktů. Jednotlivé produkty jsou odděleny\
        \ nullbytem 0x00.\n        Pro správnou funkci je třeba v hlavičkách uvést\
        \ Accept: application/json-nullstream</p>\n\n        <h3>Parametry volání\
        \ odpovídají metodě category_list() s následujícími vyjímkami:</h3>\n    \
        \    <ul>\n            <li>Jediný povinný parametr je distributor_key</li>\n\
        \            <li>Nejsou dostupné parametry offset a count</li>\n         \
        \   <li>Pokud nejsou předány parametry category_id a provider pak je vrácen\
        \ obsah\n            všech kategorií všech providerů dostupných distributorovi.</li>\n\
        \        </ul>\n\n        <p>Struktura produktu v odpovědi odpovídá struktuře\
        \ odpovědi metody item_detail()</p>\n\n        <p>V případě chyby při zpracování\
        \ je nullstream ukončen a jako poslední item je\n        přidán chybový objekt:</p>\n\
        \        <pre> { \"status\": &lt;int - kód chyby&gt;, \"status_message\":\
        \ \"popis chyby\" } </pre>\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                available_only:
                  type: boolean
                category_id:
                  type: integer
                distributor_key:
                  type: string
                filters:
                  properties: {}
                  type: object
                order:
                  items:
                    properties: {}
                    type: object
                  type: array
                provider:
                  type: string
              required:
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  category_list_nullstream:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <p>Vrací stream produktů. Jednotlivé produkty jsou odděleny nullbytem
        0x00.
  /changes:
    post:
      description: "\n        Vrací přehled změn\n        "
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  changes:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Vrací přehled změn
  /faq:
    post:
      description: "\n        Vrací odpovědi na často kladené dotazy\n        "
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  faq:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Vrací odpovědi na často kladené dotazy
  /get_event:
    post:
      description: "\n        Fetches the event from the database corresponding to\
        \ the provided id.\n\n        Arguments:\n            c (cursor): Database\
        \ cursor used to execute SQL queries.\n            id (str): Identifier of\
        \ the event to fetch.\n\n        Returns:\n            tuple: A tuple containing\
        \ id, user_id, time, action, and extra from the\n            database if the\
        \ event is found, otherwise None.\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  type: string
              required:
              - id
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  get_event:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Fetches the event from the database corresponding to the provided id.
  /item_consume:
    post:
      description: "\n        <h2>Vrací link ke stažení produktu</h2>\n\n        <h3>Parametry:</h3>\n\
        \        <ul>\n            <li><b>str distributor_key</b> - distributorův\
        \ klíč (povinné)</li>\n            <li><b>str provider</b> - provider (povinné)</li>\n\
        \            <li><b>str item_id</b> - id produktu ke konzumaci</li>\n    \
        \        <li><b>str type_id</b> - id požadovaného typu</li>\n            <li><b>str\
        \ purpose_id</b> - id varianty</li>\n            <li><b>str order_id</b> -\
        \ identifikace objednávky vůči které se ověřuje nákup</li>\n            <li><b>str\
        \ user</b> - unikátní id uživatele</li>\n            <li><b>items</b> - seznam\
        \ objektů s údaji o produktech</li>\n            <li><b>dict request_attrs</b>\
        \ - atributy pro request download</li>\n        </ul>\n\n        <h3>Type_id:</h3>\n\
        \        <p>\n        Určuje požadovaný typ. Není-ĺi uveden, bere se typ použitý\
        \ při objednávce.\n        V určitých případech je možné konzumovat i jiné\
        \ typy než má zákazník zakoupené\n        (např. při zakoupení flac může být\
        \ umožněno skladbu získat i ve formátu mp3).\n        V takovém případě je\
        \ potřeba uvést požadovaný typ. Možnost konzumace jiného než\n        zakoupeného\
        \ typu se může u jednotlivých produktů lišit. Pro více detailů se, prosím,\n\
        \        obraťte na našeho zástupce.\n        </p>\n\n        <h3>Varianty:</h3>\n\
        \        <p>\n        V případě, že je poskytováno více variant je třeba předat\
        \ purpose_id\n        (viz. item_detail()). V některých případech má api nadefinovanou\
        \ defaultní\n        variantu která je použita v případě, že není purpose_id\
        \ předáno.\n        </p>\n\n        <h3>Parametry user a items:</h3>\n   \
        \     <p>\n        Musicjet umožňuje specifikovat stahování více alb/tracků\
        \ v jednom zipu\n        (jinak než jako součást jednoho alba) - a k tomu\
        \ slouží parametr items.\n        </p>\n\n        <p>items: seznam objektů\
        \ popisující produkty ke stažení</p>\n        <pre>\n        [{\n        \
        \    'item_id': id produktu (povinné),\n            'order_id': id objednávky\
        \ pro ověření nákupu\n        }, ...]\n        </pre>\n\n        <p>\n   \
        \     V případě že je při volání item_consume() uveden parametr items, jsou\n\
        \        ignorovány parametry item_id a order_id.\n        </p>\n\n      \
        \  <p>\n        Pro ověření nákupu je možné uvést buď klíč order_id u každé\
        \ položky\n        v seznamu items, nebo parametr user ve volání metody. Pokud\
        \ je využit\n        parametr user, je prohledávána celá uživatelova knihovna\
        \ a odpověď bude\n        pomalejší.\n        </p>\n\n        <p>\n      \
        \  Všechny produkty v balíku budou ve stejném typu/variantě definovanými\n\
        \        paremetry type_id a purpose_id.\n        </p>\n\n        <p>\n  \
        \      V balíku budou zahrnuty pouze takové produkty ze seznamu items, které\
        \ budou\n        dobře popsány a vyhodnoceny jako zakoupené. Ostatní budou\
        \ bez varování\n        ignorovány. Pokud by ke konzumaci nezbyl žádný produkt,\
        \ je vrácena chyba.\n        </p>\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
                item_id:
                  type: string
                items:
                  items: {}
                  type: array
                order_id:
                  type: string
                provider:
                  type: string
                purpose_id:
                  type: string
                request_attrs:
                  properties: {}
                  type: object
                type_id:
                  type: string
                user:
                  type: string
              required:
              - distributor_key
              - provider
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  item_consume:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Vrací link ke stažení produktu</h2>
  /item_detail:
    post:
      description: "\n        <h2>Detailní informace o produktu</h2>\n\n        <h3>Parametry:</h3>\n\
        \        <ul>\n            <li><b>str distributor_key</b> - distributorův\
        \ klíč (povinné)</li>\n            <li><b>str provider</b> - název providera\
        \ (povinné)</li>\n            <li><b>str item_id</b> - id produktu (povinné)</li>\n\
        \        </ul>\n\n        <p>Výsledkem je objekt s informacemi o produktu.\
        \ Strukturou odpovídá informacím\n        o produktu z výsledku category_list()\
        \ jen je doplněn o další podrobnosti:</p>\n\n        <p><b>items:</b> list\
        \ objektů popisujících subitemy (např tracky v albu)\n        strukturou odpovídají\
        \ struktuře výsledku volání item_detail()</p>\n\n        <p>Pokud si synchronizujete\
        \ katalog, a stav položky je \"canceled\", odeberte\n        prosím položku\
        \ z vašeho katalogu.</p>\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
                item_id:
                  type: string
                provider:
                  type: string
              required:
              - provider
              - item_id
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  item_detail:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Detailní informace o produktu</h2>
  /item_order:
    post:
      description: "\n        <h2>Zařadí produkt do uživatelovy knihovny, pokud tam\
        \ ještě není.</h2>\n\n        <h3>Parametry:</h3>\n        <ul>\n        \
        \    <li><b>str distributor_key</b> - distributorův klíč (povinné)</li>\n\
        \            <li><b>str user</b> - uživatelovo unikátní id (povinné)</li>\n\
        \            <li><b>str provider</b> - poskytovatel produktu (povinné)</li>\n\
        \            <li><b>str item_id</b> - id produktu (povinné)</li>\n       \
        \     <li><b>str type_id</b> - id typu obsahu (povinné)</li>\n           \
        \ <li><b>decimal price</b> - cena ze kterou je produkt prodavan (povinné)</li>\n\
        \            <li><b>str currency_id</b> - id meny (CZK/EUR)(povinné)</li>\n\
        \            <li><b>json custom_attrs</b> - libovolné údaje, které chce distributor\
        \ uložit k objednávce</li>\n            <li><b>str time</b> - čas objednávky\
        \ ve formátu %Y-%m-%d %H:%M:%S</li>\n            <li><b>campaign_ids</b> -\
        \ seznam id kampaní, kampaně byly aplikovány v pořadí, v jakém jsou uvedeny\
        \ v seznamu</li>\n        </ul>\n\n        <h3>custom_attrs:</h3>\n      \
        \  <p>V současné době jsou používány následující klíče pro účely reportingu:</p>\n\
        \        <ul>\n            <li><b>distributor_id_transaction</b>: Unikátní\
        \ označení transakce distributora</li>\n            <li><b>distributor_id_item</b>:\
        \ Unikátní označení položky v katalogu distributora (id alba, audioknihy,\
        \ tracku, kapitoly, atp.)</li>\n            <li><b>channel</b>: Kanál, kde\
        \ byl nákup uskutečněn (např. www, mobil, aplikace, sms)</li>\n          \
        \  <li><b>source</b>: Odkud se uživatel dostal k nákupu (např. homepage, banner,\
        \ kategorie, atp.)</li>\n            <li><b>device</b>: zařízení (např. desktop,\
        \ Samsung Galaxy 6, Playstation portable)</li>\n            <li><b>user_agent</b>:\
        \ User agent</li>\n        </ul>\n\n        <p>Vraci id objednávky.</p>\n\
        \        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                campaign_ids:
                  items:
                    type: integer
                  type: array
                currency_id:
                  type: string
                custom_attrs:
                  properties: {}
                  type: object
                distributor_key:
                  type: string
                item_id:
                  type: string
                price:
                  type: number
                provider:
                  type: string
                time:
                  type: string
                type_id:
                  type: string
                user:
                  type: string
              required:
              - provider
              - item_id
              - type_id
              - user
              - distributor_key
              - price
              - currency_id
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  item_order:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Zařadí produkt do uživatelovy knihovny, pokud tam ještě není.</h2>
  /library:
    post:
      description: "\n        <h2>Knihovna produktů zakoupených uživatelem</h2>\n\n\
        \        <h3>Parametry:</h3>\n        <ul>\n            <li><b>str distributor_key</b>\
        \ - distributorův klíč (povinné)</li>\n            <li><b>str user</b> - uživatelovo\
        \ unikátní id (povinné)</li>\n        </ul>\n\n        <p>Výsledkem volání\
        \ je seznam objektů, které má uživatel zakoupené. Jejich\n        struktura\
        \ odpovídá struktuře výsledků item_detail(). Navíc jsou doplněny klíče:</p>\n\
        \        <ul>\n            <li><b>order_id</b> - id objednávky</li>\n    \
        \        <li><b>custom_attrs</b> - údaje, které si distributor uložil k objednávce</li>\n\
        \            <li><b>time</b> - čas vytvoření objednávky</li>\n        </ul>\n\
        \        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
                user:
                  type: string
              required:
              - user
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  library:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Knihovna produktů zakoupených uživatelem</h2>
  /list_consume:
    post:
      description: "\n        <h2>Method to list consumption logs from the consume_logs\
        \ table.</h2>\n\n        <h3>Parameters:</h3>\n        <ul>\n            <li><b>offset</b>\
        \ (int): Pagination offset, defaults to 0.</li>\n            <li><b>count</b>\
        \ (int): Number of items to return, defaults to 50.</li>\n            <li><b>distributor_id</b>\
        \ (int or None): Optional filter for distributor ID.</li>\n            <li><b>user_id</b>\
        \ (str or None): Optional filter for user ID.</li>\n            <li><b>order_id</b>\
        \ (str or None): Optional filter for order ID.</li>\n            <li><b>provider</b>\
        \ (str or None): Optional filter for provider.</li>\n            <li><b>item_id</b>\
        \ (str or None): Optional filter for item ID.</li>\n            <li><b>type_id</b>\
        \ (str or None): Optional filter for type ID.</li>\n            <li><b>purpose_id</b>\
        \ (str or None): Optional filter for purpose ID.</li>\n            <li><b>url</b>\
        \ (str or None): Optional filter for URL.</li>\n            <li><b>time_from</b>\
        \ (datetime or None): Start date and time for filtering logs.</li>\n     \
        \       <li><b>time_to</b> (datetime or None): End date and time for filtering\
        \ logs.</li>\n            <li><b>extra</b> (dict or None): Additional optional\
        \ filter parameters.</li>\n        </ul>\n\n        <h3>Returns:</h3>\n  \
        \      <p>List of consumption log entries.</p>\n\n        <p>Prepares a SQL\
        \ query with the specified filters and executes it to retrieve the logs.</p>\n\
        \        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                count:
                  type: integer
                distributor_id:
                  type: integer
                extra:
                  properties: {}
                  type: object
                item_id:
                  type: string
                offset:
                  type: integer
                order_id:
                  type: string
                provider:
                  type: string
                purpose_id:
                  type: string
                time_from:
                  type: string
                time_to:
                  type: string
                type_id:
                  type: string
                url:
                  type: string
                user_id:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  list_consume:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Method to list consumption logs from the consume_logs table.</h2>
  /list_events:
    post:
      description: "\n        <h2>Fetches events from the database based on the provided\
        \ filters and pagination options.</h2>\n\n        <h3>Parameters:</h3>\n \
        \       <ul>\n            <li><b>self</b> (obj): The instance of the class.</li>\n\
        \            <li><b>c</b> (cursor): Database cursor for executing the query.</li>\n\
        \            <li><b>id</b> (str): Optional filter for the event ID.</li>\n\
        \            <li><b>time_from</b> (datetime): Optional filter for the start\
        \ of the time range.</li>\n            <li><b>time_to</b> (datetime): Optional\
        \ filter for the end of the time range.</li>\n            <li><b>action</b>\
        \ (str): Optional filter for the action performed in the event.</li>\n   \
        \         <li><b>user_id</b> (str): Optional filter for the user ID associated\
        \ with the event.</li>\n            <li><b>extra</b> (dict): Optional additional\
        \ filters in the form of a dictionary.</li>\n            <li><b>offset</b>\
        \ (int): Optional offset for pagination. Default is 0.</li>\n            <li><b>count</b>\
        \ (int): Optional count for pagination. Default is 50.</li>\n            <li><b>omit</b>\
        \ (list): Optional list of fields to omit from the result.</li>\n        </ul>\n\
        \n        <h3>Yields:</h3>\n        <p>dict: Event records matching the filters\
        \ with fields possibly omitted.</p>\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                action:
                  type: string
                count:
                  type: integer
                extra:
                  properties: {}
                  type: object
                id:
                  type: string
                offset:
                  type: integer
                omit:
                  items:
                    enum:
                    - items.items
                    type: string
                  type: array
                time_from:
                  type: string
                time_to:
                  type: string
                user_id:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  list_events:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Fetches events from the database based on the provided filters
        and pagination options.</h2>
  /list_flags:
    post:
      description: "\n        Vrátí číselník flagů\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
              required:
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  list_flags:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Vrátí číselník flagů
  /list_providers:
    post:
      description: "\n        Vrátí seznam providerů\n        "
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  list_providers:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Vrátí seznam providerů
  /list_states:
    post:
      description: "\n        Vrátí číselník stavů\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
              required:
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  list_states:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Vrátí číselník stavů
  /list_types:
    post:
      description: "\n        Vrátí číselník typů\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
              required:
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  list_types:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: Vrátí číselník typů
  /menu_list:
    post:
      description: "\n        <h2>Vrátí seznam kategorií</h2>\n\n        <h3>Parametry:</h3>\n\
        \        <ul>\n            <li><b>str distributor_key</b> - distributorův\
        \ klíč (povinné)</li>\n            <li><b>str provider</b> - název providera</li>\n\
        \        </ul>\n\n        <h3>Vrací seznam objektů:</h3>\n        <pre>\n\
        \        {\n            provider: poskytovatel kategorie,\n            category_id:\
        \ id kategorie v rámci jejího providera (id kategorie určuje\n           \
        \ poskytovatel, tedy u dvou poskytovatelů mohou být různé kategorie se\n \
        \           stejným id),\n            name: název kategorie,\n           \
        \ childs: seznam podkategorii (stejná struktura jako rodič)\n        }\n \
        \       </pre>\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
                provider:
                  type: string
              required:
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  menu_list:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Vrátí seznam kategorií</h2>
  /simple_library:
    post:
      description: "\n        <h2>Returns a simple library for the given user and\
        \ distributor.</h2>\n\n        <h3>Parameters:</h3>\n        <ul>\n      \
        \      <li><b>user</b> (str): The identifier for the user.</li>\n        \
        \    <li><b>distributor_key</b> (str): The key for the distributor.</li>\n\
        \        </ul>\n\n        <h3>Returns:</h3>\n        <p>object: The library\
        \ object specific to the user and distributor_key.</p>\n        "
      requestBody:
        content:
          application/json:
            schema:
              properties:
                distributor_key:
                  type: string
                user:
                  type: string
              required:
              - user
              - distributor_key
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  simple_library:
                    type: object
                  status:
                    example: 200
                    type: number
                  status_message:
                    example: OK
                    type: string
                type: object
          description: OK
      summary: <h2>Returns a simple library for the given user and distributor.</h2>
servers:
- description: Api url
  url: http://bup-frontends-nag:80
