using adas_core.Domain.Models; using adas_core.Domain.Models.MongoModels; using MongoDB.Bson; namespace adas_core.Application.Services.Interfaces; public interface INoticeService { /// /// Asynchronously deletes the specified notice. /// /// The notice to delete. /// A task that represents the asynchronous delete operation. Task DeleteNoticeAsync(Notice notice); /// /// Asynchronously deletes a notice identified by the specified identifier. /// /// The unique identifier of the notice to delete. Task DeleteNoticeByIdAsync(ObjectId noticeId); /// /// Asynchronously retrieves a entity by its unique identifier from the data store. /// Returns when no notice matches the provided identifier. /// /// The that uniquely identifies the notice to retrieve. /// A containing the matching , or if no notice is found. Task GetNoticeByIdAsync(ObjectId noticeId); /// /// Asynchronously retrieves a collection of notices filtered by the specified notice type. /// The task result may be null when no notices match the given type. /// /// The type of notice to filter by. /// A task containing an enumerable of matching objects, or null if none are found. Task?> GetNoticeByTypeAsync(string noticeType); /// /// Asynchronously retrieves a collection of notices. /// /// A task that represents the asynchronous operation. The task result contains an enumerable collection of objects. Task> GetNoticesAsync(); /// /// Inserts a new notice into the data store. /// /// The notice entity to insert. /// A task that represents the asynchronous operation. The task result contains the inserted , or null if the notice could not be inserted. Task InsertNotice(Notice notice); /// /// Asynchronously updates an existing notice in the system. /// /// The notice entity containing the updated information to be persisted. Task UpdateNoticeAsync(Notice notice); /// /// Persists the provided API request to the data store. /// /// The API request to be saved. Task SaveRequest(ApiRequest apiRequest); /// /// Asynchronously persists the specified API request. /// /// The API request to save. Task SaveRequestAsync(ApiRequest apiRequest); /// /// Asynchronously retrieves the collection of notices associated with the specified display identifier. /// /// The identifier of the display whose notices should be retrieved. /// A task that returns the notices for the display, or null when no notices are found for the given display. Task?> GetNoticesByDisplayId(ObjectId displayId); }