using TakeoutSaaS.Domain.Dictionary.Enums;

namespace TakeoutSaaS.Application.Dictionary.Contracts;

/// <summary>
/// 字典分组查询参数。
/// </summary>
public sealed class DictionaryGroupQuery
{
    /// <summary>
    /// 作用域过滤。
    /// </summary>
    public DictionaryScope? Scope { get; set; }

    /// <summary>
    /// 关键字（匹配编码或名称）。
    /// </summary>
    public string? Keyword { get; set; }

    /// <summary>
    /// 启用状态过滤。
    /// </summary>
    public bool? IsEnabled { get; set; }

    /// <summary>
    /// 分页页码。
    /// </summary>
    public int Page { get; set; } = 1;

    /// <summary>
    /// 分页大小。
    /// </summary>
    public int PageSize { get; set; } = 20;

    /// <summary>
    /// 排序字段。
    /// </summary>
    public string? SortBy { get; set; }

    /// <summary>
    /// 排序方向（asc/desc）。
    /// </summary>
    public string? SortOrder { get; set; }

    /// <summary>
    /// 是否包含字典项。
    /// </summary>
    public bool IncludeItems { get; set; }
}
