namespace OF_DL.Services;
public interface IDbService
{
///
/// Inserts a message record when it does not already exist.
///
Task AddMessage(string folder, long postId, string messageText, string price, bool isPaid, bool isArchived,
DateTime createdAt, long userId);
///
/// Inserts a post record when it does not already exist.
///
Task AddPost(string folder, long postId, string messageText, string price, bool isPaid, bool isArchived,
DateTime createdAt);
///
/// Inserts a story record when it does not already exist.
///
Task AddStory(string folder, long postId, string messageText, string price, bool isPaid, bool isArchived,
DateTime createdAt);
///
/// Creates or updates the per-user metadata database.
///
Task CreateDb(string folder);
///
/// Creates or updates the global users database.
///
Task CreateUsersDb(Dictionary users);
///
/// Ensures a username matches the stored user ID and migrates folders if needed.
///
Task CheckUsername(KeyValuePair user, string path);
///
/// Inserts a media record when it does not already exist.
///
Task AddMedia(string folder, long mediaId, long postId, string link, string? directory, string? filename,
long? size, string apiType, string mediaType, bool preview, bool downloaded, DateTime? createdAt);
///
/// Updates the media record with local file details.
///
Task UpdateMedia(string folder, long mediaId, string apiType, string directory, string filename, long size,
bool downloaded, DateTime createdAt);
///
/// Returns the stored size for a media record.
///
Task GetStoredFileSize(string folder, long mediaId, string apiType);
///
/// Checks whether the media has been marked as downloaded.
///
Task CheckDownloaded(string folder, long mediaId, string apiType);
///
/// Returns the most recent post date based on downloaded and pending media.
///
Task GetMostRecentPostDate(string folder);
}