using MerchantService.Domain.AggregatesModel.MerchantStaffAggregate;

namespace MerchantService.API.Application.Behaviors;

/// <summary>
/// EN: Marker interface for commands that require a specific StaffPermission.
///     Commands implementing this will be checked by PermissionAuthorizationBehavior.
/// VI: Marker interface cho commands yêu cầu StaffPermission cụ thể.
///     Commands implement interface này sẽ được kiểm tra bởi PermissionAuthorizationBehavior.
/// </summary>
public interface IRequirePermission
{
    /// <summary>
    /// EN: The permission required to execute this command.
    /// VI: Permission cần thiết để thực thi command này.
    /// </summary>
    StaffPermissions RequiredPermission { get; }
}
