using MediatR;

namespace StorageService.API.Application.Commands.Admin;

/// <summary>
/// EN: Command for Admin to revoke a file share.
/// VI: Command cho Admin revoke chia sẻ file.
/// </summary>
public record AdminRevokeShareCommand(
    Guid ShareId,
    string AdminUserId,
    string Reason
) : IRequest<AdminRevokeShareResult>;

/// <summary>
/// EN: Result of admin share revocation.
/// VI: Kết quả revoke share bởi admin.
/// </summary>
public record AdminRevokeShareResult(
    bool Success,
    Guid? FileId,
    string? ShareOwnerUserId,
    string? Error);
