using LiveForum.Code.Base;
using LiveForum.IService.Messages;
using LiveForum.Model.Dto.Messages;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace LiveForum.WebApi.Controllers
{
///
/// 消息相关接口
///
///
[Route("api/[controller]/[action]")]
[ApiController]
public class MessagesController(IMessagesService messages) : ControllerBase
{
///
/// 获取消息列表
///
/// 请求参数
///
[HttpGet]
[Authorize]
public Task> GetMessages([FromQuery] GetMessagesReq request) => messages.GetMessages(request);
///
/// 获取系统通知列表
///
/// 请求参数
///
[HttpGet]
[Authorize]
public Task> GetSystemNotifications([FromQuery] GetSystemNotificationsReq request) => messages.GetSystemNotifications(request);
///
/// 标记消息为已读
///
/// 请求参数
///
[HttpPost]
[Authorize]
public Task> ReadMessage([FromBody] ReadMessageReq request) => messages.ReadMessage(request);
///
/// 批量标记消息为已读
///
/// 请求参数
///
[HttpPost]
[Authorize]
public Task> ReadBatchMessages([FromBody] ReadBatchMessagesReq request) => messages.ReadBatchMessages(request);
///
/// 全部标记为已读
///
/// 请求参数
///
[HttpPost]
[Authorize]
public Task> ReadAllMessages([FromBody] ReadAllMessagesReq request) => messages.ReadAllMessages(request);
///
/// 删除消息
///
/// 请求参数
///
[HttpPost]
[Authorize]
public Task DeleteMessage([FromBody] DeleteMessageReq request) => messages.DeleteMessage(request);
///
/// 获取未读消息数量
///
///
[HttpGet]
[Authorize]
public Task> GetUnreadCount() => messages.GetUnreadCount();
///
/// 获取评论回复消息列表
///
/// 请求参数
///
[HttpGet]
[Authorize]
public Task> GetCommentRepliesMessages([FromQuery] GetCommentRepliesMessagesReq request) => messages.GetCommentRepliesMessages(request);
///
/// 获取点赞消息列表
///
/// 请求参数
///
[HttpGet]
[Authorize]
public Task> GetLikesMessages([FromQuery] GetLikesMessagesReq request) => messages.GetLikesMessages(request);
///
/// 参与活动
///
/// 请求参数
///
[HttpPost]
[Authorize]
public Task> ParticipateActivity([FromBody] ParticipateActivityReq request) => messages.ParticipateActivity(request);
}
}