// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
namespace FileIndexer::Statements
{
constexpr auto getFilesCount = R"sql(
SELECT COUNT(FT.file_id) AS FILE_PATH_EXISTS FROM file_tab AS FT;
)sql";
constexpr auto getMetadataCount = R"sql(
SELECT COUNT(MT.file_id) AS FILE_PATH_EXISTS FROM metadata_tab AS MT;
)sql";
constexpr auto checkFileExists = R"sql(
SELECT COUNT(size) AS FILE_PATH_EXISTS FROM file_tab AS FT
WHERE FT.path = '%q'
COLLATE NOCASE;
)sql";
constexpr auto getFileIdByPath = R"sql(
SELECT FT.file_id FROM file_tab AS FT
WHERE FT.path = '%q'
COLLATE NOCASE;
)sql";
constexpr auto getFilePathById = R"sql(
SELECT FT.path FROM file_tab AS FT
WHERE FT.file_id = '%lu'
COLLATE NOCASE;
)sql";
constexpr auto getFileInfoByPath = R"sql(
SELECT file_id, path, size, mime_type, mtime, directory ,file_type FROM file_tab AS FT
WHERE FT.path = '%q'
COLLATE NOCASE;
)sql";
constexpr auto getFileInfoById = R"sql(
SELECT file_id, path, size, mime_type, mtime, directory, file_type FROM file_tab AS FT
WHERE FT.file_id = '%lu'
COLLATE NOCASE;
)sql";
constexpr auto getFilesByDir = R"sql(
SELECT file_id, path, size, mime_type, mtime, directory, file_type FROM file_tab AS FT
WHERE FT.directory = '%q'
COLLATE NOCASE;
)sql";
constexpr auto insertFileInfo = R"sql(
INSERT OR REPLACE INTO file_tab (path, size, mime_type, mtime, directory, file_type) VALUES
('%q', '%lu', '%lu' , '%lu', '%q', '%lu') ;
)sql";
constexpr auto updateFileInfo = R"sql(
UPDATE file_tab SET path= '%q',
size= '%lu',
mime_type= '%lu',
mtime= '%lu',
directory ='%q',
file_type= '%lu'
WHERE file_id = '%lu' ;
)sql";
constexpr auto deleteFileById = R"sql(
DELETE FROM file_tab AS FT
WHERE FT.file_id = '%lu';
DELETE FROM metadata_tab AS MT
WHERE MT.file_id = '%lu';
)sql";
constexpr auto deleteAllFileInfoInDir = R"sql(
DELETE FROM file_tab AS FT
WHERE FT.directory = '%q';
)sql";
constexpr auto getFilesIdByDir = R"sql(
SELECT file_id FROM file_tab AS FT
WHERE FT.directory = '%q'
COLLATE NOCASE;
)sql";
constexpr auto getPropertyValue = R"sql(
SELECT MT.file_id, MT.property, MT.value
FROM metadata_tab AS MT, file_tab AS FT
WHERE MT.property = '%q' AND FT.path = '%q' AND FT.file_id = MT.file_id
COLLATE NOCASE;
)sql";
constexpr auto getAllProperties = R"sql(
SELECT MT.file_id, MT.property, MT.value
FROM metadata_tab AS MT, file_tab AS FT
WHERE FT.path = '%q' AND FT.file_id = MT.file_id
COLLATE NOCASE;
)sql";
constexpr auto insertPropertyValue = R"sql(
INSERT OR REPLACE INTO metadata_tab (file_id, property, value) VALUES
( '%lu', '%q', '%q' ) ;
)sql";
constexpr auto updatePropertyValue = R"sql(
UPDATE metadata_tab SET value = '%q'
WHERE file_id= '%lu' AND property = '%q' ;
)sql";
constexpr auto setNotification = R"sql(
INSERT OR REPLACE INTO notifications_tab (path, service) VALUES
( '%q' , '%q' ) ;
)sql";
constexpr auto updateNotification = R"sql(
UPDATE notifications_tab SET path = '%q', service = '%q'
WHERE id = '%lu';
)sql";
constexpr auto clearNotificationdRow = R"sql(
DELETE FROM notifications_tab
WHERE path = '%q' AND service = '%q';
)sql";
constexpr auto getAllNotifications = R"sql(
SELECT id, path, service
FROM notifications_tab AS NT;
)sql";
constexpr auto getNotification = R"sql(
SELECT id, path, service
FROM notifications_tab AS NT
WHERE path= '%q' AND service = '%q';
)sql";
} // namespace FileIndexer::Statements