using MediatR;
using System.ComponentModel.DataAnnotations;
using TakeoutSaaS.Application.App.Merchants.Dto;

namespace TakeoutSaaS.Application.App.Merchants.Commands;

/// <summary>
/// 新增商户类目。
/// </summary>
public sealed record CreateMerchantCategoryCommand : IRequest<MerchantCategoryDto>
{
    /// <summary>
    /// 租户 ID。
    /// </summary>
    [Range(1, long.MaxValue)]
    public long TenantId { get; init; }

    /// <summary>
    /// 类目名称。
    /// </summary>
    [Required, MaxLength(64)]
    public string Name { get; init; } = string.Empty;

    /// <summary>
    /// 排序（为空则自动追加到末尾）。
    /// </summary>
    public int? DisplayOrder { get; init; }

    /// <summary>
    /// 是否启用。
    /// </summary>
    public bool IsActive { get; init; } = true;
}
