using MediatR;
using TakeoutSaaS.Application.App.Tenants.Dto;
using TakeoutSaaS.Domain.Tenants.Enums;
using TakeoutSaaS.Shared.Abstractions.Results;
namespace TakeoutSaaS.Application.App.Tenants.Queries;
///
/// 分页查询租户公告。
///
public sealed record GetTenantsAnnouncementsQuery : IRequest>
{
///
/// 租户 ID(雪花算法)。
///
public long TenantId { get; init; }
///
/// 公告类型筛选。
///
public TenantAnnouncementType? AnnouncementType { get; init; }
///
/// 公告状态筛选。
///
public AnnouncementStatus? Status { get; init; }
///
/// 关键词搜索(标题/内容)。
///
public string? Keyword { get; init; }
///
/// 是否筛选启用状态。
///
public bool? IsActive { get; init; }
///
/// 生效开始时间筛选(UTC)。
///
public DateTime? EffectiveFrom { get; init; }
///
/// 生效结束时间筛选(UTC)。
///
public DateTime? EffectiveTo { get; init; }
///
/// 仅返回当前有效期内的公告。
///
public bool? OnlyEffective { get; init; }
///
/// 页码(从 1 开始)。
///
public int Page { get; init; } = 1;
///
/// 每页条数。
///
public int PageSize { get; init; } = 20;
}