using Hotline.Share.Dtos.Article;
using Hotline.Share.Dtos.Snapshot;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hotline.Application.Snapshot.Contracts;
public interface ISnapshotBulletinApplication
{
    /// <summary>
    /// 新增公告
    /// </summary>
    /// <param name="dto"></param>
    /// <param name="requestAborted"></param>
    /// <returns></returns>
    Task<string> AddBulletinAsync(AddSnapshotBulletinInDto dto, CancellationToken requestAborted);

    /// <summary>
    /// 审核公告
    /// </summary>
    /// <param name="dto"></param>
    /// <param name="requestAborted"></param>
    /// <returns></returns>
    Task ExamineBulletinAsync(ExamineBulletinDto dto, CancellationToken requestAborted);

    /// <summary>
    /// 发送通知公告
    /// </summary>
    /// <param name="bullutionId"></param>
    /// <param name="token"></param>
    /// <returns></returns>
    Task NotifyUserAsync(string bullutionId, CancellationToken token);

    /// <summary>
    /// 处理通知公告图片附件路径
    /// </summary>
    /// <param name="sHtmlText"></param>
    /// <returns></returns>
    string GetSiteUrls(string sHtmlText);
    ISugarQueryable<SnapshotBulletinItemsOutDto> QueryBulletinItems(SnapshotBulletinItemsInDto dto);
    Task CommitBulletinAsync(string id, CancellationToken requestAborted);
}
