// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
namespace settings::Statements
{
constexpr auto getValue = R"sql(
SELECT value
FROM settings_tab AS ST
WHERE ST.path = '%q'
COLLATE NOCASE;
)sql";
constexpr auto getAllValues = R"sql(
SELECT path, value
FROM settings_tab;
)sql";
constexpr auto checkPathExists = R"sql(
SELECT COUNT(value) AS PATH_EXISTS FROM settings_tab AS ST
WHERE ST.path = '%q'
COLLATE NOCASE;
)sql";
constexpr auto CheckValueExistsInDictionary = R"sql(
SELECT COUNT(value) AS VALUE_EXISTS_IN_DICT FROM dictionary_tab AS DT
WHERE DT.path = '%q'
AND DT.value = '%q'
COLLATE NOCASE;
)sql";
constexpr auto getDictValue = R"sql(
SELECT value
FROM dictionary_tab
WHERE path = '%q'
COLLATE NOCASE;
)sql";
// no duplicates in dictionary (PK = path + value)
constexpr auto addDictValue = R"sql(
INSERT OR IGNORE INTO dictionary_tab (path, value)
VALUES ( '%q', '%q')
)sql";
constexpr auto checkSettingModified = R"sql(
SELECT COUNT(value) AS DATA_CHANGED FROM settings_tab AS ST
WHERE ST.path = '%q'
AND ST.value != '%q' COLLATE NOCASE ;
)sql";
constexpr auto insertValue = R"sql(
INSERT OR REPLACE INTO settings_tab (path, value) VALUES
( '%q', '%q' ) ;
)sql";
constexpr auto updateValue = R"sql(
UPDATE settings_tab SET value = '%q' WHERE path = '%q' ;
)sql";
constexpr auto clearSettingsChangedTable = R"sql(
DELETE FROM settings_changed_tab;
)sql";
constexpr auto clearSettingsChangedRow = R"sql(
DELETE FROM settings_changed_tab
WHERE path = '%q' ;
)sql";
constexpr auto getSettingsChangeTable = R"sql(
SELECT path, value FROM settings_changed_tab
COLLATE NOCASE;
)sql";
constexpr auto getSettingsChangeRow = R"sql(
SELECT path, value FROM settings_changed_tab
WHERE path = '%q'
COLLATE NOCASE;
)sql";
constexpr auto setNotification = R"sql(
INSERT OR REPLACE INTO notifications_tab (path, service) VALUES
( '%q' , '%q' ) ;
)sql";
constexpr auto getAllNotifications = R"sql(
SELECT path, service
FROM notifications_tab AS NT;
)sql";
constexpr auto clearNotificationTable = R"sql(
DELETE FROM notifications_tab;
)sql";
constexpr auto clearNotificationdRow = R"sql(
DELETE FROM notifications_tab
WHERE path = '%q' AND service = '%q';
)sql";
} // namespace settings::Statements