using adas_core.Domain.Models;
using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;

namespace adas_core.Application.Services.Interfaces;

public interface INoticeService
{
    Task DeleteNoticeAsync(Notice notice);
    Task DeleteNoticeByIdAsync(ObjectId noticeId);
    Task<Notice?> GetNoticeByIdAsync(ObjectId noticeId);
    Task<IEnumerable<Notice>?> GetNoticeByTypeAsync(string noticeType);
    Task<IEnumerable<Notice>> GetNoticesAsync();
    Task<Notice?> InsertNotice(Notice notice);
    Task UpdateNoticeAsync(Notice notice);
    Task SaveRequest(ApiRequest apiRequest);
    Task SaveRequestAsync(ApiRequest apiRequest);
    Task<IEnumerable<Notice>?> GetNoticesByDisplayId(ObjectId displayId);
}