IW4M-Admin/Plugins/Stats/Dtos/ChatSearchQuery.cs

53 lines
1.6 KiB
C#
Raw Normal View History

using SharedLibraryCore.QueryHelper;
using System;
namespace Stats.Dtos
{
public class ChatSearchQuery : ClientPaginationRequest
{
/// <summary>
/// specifies the partial content of the message to search for
/// </summary>
public string MessageContains { get; set; }
/// <summary>
/// identifier for the server
/// </summary>
public string ServerId { get; set; }
/// <summary>
/// identifier for the client
/// </summary>
public new int? ClientId { get; set; }
/// <summary>
/// only look for messages sent after this date
/// </summary>
2022-06-16 19:03:23 -04:00
public DateTime? SentAfter { get; set; }
2023-08-26 23:56:37 -04:00
/// <summary>
/// The time associated with SentAfter date
/// </summary>
public string SentAfterTime { get; set; }
2023-08-26 23:56:37 -04:00
public DateTime? SentAfterDateTime => SentAfter?.Add(string.IsNullOrEmpty(SentAfterTime) ? TimeSpan.Zero : TimeSpan.Parse(SentAfterTime));
2023-08-26 23:56:37 -04:00
/// <summary>
/// only look for messages sent before this date0
/// </summary>
2023-08-26 23:56:37 -04:00
public DateTime SentBefore { get; set; } = DateTime.UtcNow.Date;
public string SentBeforeTime { get; set; }
public DateTime? SentBeforeDateTime =>
SentBefore.Add(string.IsNullOrEmpty(SentBeforeTime) ? TimeSpan.Zero : TimeSpan.Parse(SentBeforeTime));
2023-08-26 23:56:37 -04:00
public bool IsExactMatch { get; set; }
/// <summary>
/// indicates if the chat is on the meta page
/// </summary>
public bool IsProfileMeta { get; set; }
}
}