using MediatR;

namespace IamService.API.Application.Commands.PrivilegedAccess;

/// <summary>
/// EN: Command to request privileged access (PAM).
/// VI: Command để yêu cầu truy cập đặc quyền (PAM).
/// </summary>
public record RequestPrivilegedAccessCommand(
    Guid UserId,
    Guid RoleId,
    string ResourceScope,
    string? Reason,
    Guid GrantedByUserId,
    int DurationMinutes = 60) : IRequest<Guid>;

/// <summary>
/// EN: Command to revoke privileged access.
/// VI: Command để thu hồi truy cập đặc quyền.
/// </summary>
public record RevokePrivilegedAccessCommand(
    Guid GrantId,
    Guid RevokedByUserId,
    string? Reason) : IRequest<Unit>;
