namespace Core.Services;
///
/// Service for managing note naming conventions throughout the system.
/// Centralizes the logic for generating note titles for meeting notes and page notes.
///
public interface INoteNamingService
{
///
/// Gets the title for a meeting note based on the meeting date.
/// Format: "#Meeting Notes MM/dd/yyyy"
///
/// The date of the meeting
/// The formatted meeting note title
string GetMeetingNoteTitle(DateTime meetingDate);
///
/// Gets the title for a page note based on the page identifier.
/// Format: "#{pageIdentifier}"
///
/// The page identifier (e.g., "students", "teams")
/// The formatted page note title
string GetPageNoteTitle(string pageIdentifier);
///
/// Checks if a note title represents a page note (starts with "#").
///
/// The note title to check
/// True if the note is a page note, false otherwise
bool IsPageNote(string noteTitle);
///
/// Checks if a note title represents a meeting note (starts with "#Meeting Notes").
///
/// The note title to check
/// True if the note is a meeting note, false otherwise
bool IsMeetingNote(string noteTitle);
///
/// Gets the title for a student note. Format: "#Student:{id}"
///
string GetStudentNoteTitle(int studentId);
///
/// Checks if a note title is a student note.
///
bool IsStudentNote(string? noteTitle);
///
/// Parses the student id from a student note title.
///
bool TryParseStudentNoteId(string? noteTitle, out int studentId);
}