using MediatR;

namespace StorageService.API.Application.Commands.Admin;

/// <summary>
/// EN: Command for Admin to delete a file (bypasses ownership check).
/// VI: Command cho Admin xóa file (bỏ qua kiểm tra ownership).
/// </summary>
public record AdminDeleteFileCommand(
    Guid FileId,
    string AdminUserId,
    string Reason
) : IRequest<AdminDeleteFileResult>;

/// <summary>
/// EN: Result of admin file deletion.
/// VI: Kết quả xóa file bởi admin.
/// </summary>
public record AdminDeleteFileResult(
    bool Success,
    string? DeletedFileName,
    string? FileOwnerUserId,
    string? Error);
