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); }