Загрузка данных


    v_notification_id uuid;
    v_notification_body jsonb;




    -- Готовим уведомление по созданному шаблону.
    -- UUID сохраняется и будет одинаковым при повторных попытках отправки.
    v_notification_id := gen_random_uuid();

    SELECT jsonb_build_object(
        'type', p.type_code,
        'caption', p.title,
        'text', p.body,
        'link', p.link,
        'duration_days', p.duration_days,
        'person_code', i.code_1c,
        'uuid', v_notification_id
    )
    INTO v_notification_body
    FROM integration.dict_360_to_lkk_notification_patterns p
    JOIN ourpension.individual i
        ON i.id = v_client_id
    WHERE p.id = 15
      AND p.type_code = 12;

    IF v_notification_body IS NULL THEN
        RAISE EXCEPTION USING
            ERRCODE = 'XX000',
            MESSAGE = 'Не найден шаблон уведомления УНВ или клиент';
    END IF;

    IF NULLIF(
        TRIM(v_notification_body ->> 'person_code'),
        ''
    ) IS NULL THEN
        RAISE EXCEPTION USING
            ERRCODE = 'XX000',
            MESSAGE = 'Для уведомления ЛКК у клиента не заполнен code_1c';
    END IF;

    -- Сохраняем задание в одной транзакции с заявлением.
    INSERT INTO report.unv_notification_queue (
        id,
        request_id,
        body
    )
    VALUES (
        v_notification_id,
        v_request_id,
        v_notification_body
    );