using Core.Entities; namespace WebApp.Services; public interface INotesService { /// /// Gets all notes, optionally including deleted notes. /// /// If true, includes soft-deleted notes. Defaults to false. Task> GetNotesAsync(bool includeDeleted = false); /// /// Gets a single note by ID. /// Task GetNoteAsync(int id); /// /// Gets a page-specific note by page identifier. /// /// The page identifier (e.g., "Teams", "Registration") /// The note with title "@{pageIdentifier}" or null if not found Task GetPageNoteAsync(string pageIdentifier); /// /// Gets all history entries for a note. /// Task> GetNoteHistoryAsync(int noteId); /// /// Creates a new note and initial history entry. /// Task CreateNoteAsync(Note note); /// /// Updates an existing note and creates a history entry. /// Task UpdateNoteAsync(Note note); /// /// Deletes a note and creates a deletion history entry. /// Task DeleteNoteAsync(int id); /// /// Gets up to 3 pinned notes, excluding page notes and deleted notes, ordered by most recently updated. /// Task> GetPinnedNotesAsync(); /// /// Toggles the pin status of a note, enforcing the 3-note limit. /// Task TogglePinNoteAsync(int noteId); /// /// Gets all soft-deleted notes. /// Task> GetDeletedNotesAsync(); /// /// Restores a soft-deleted note. /// Task RestoreNoteAsync(int noteId); }