#nullable enable
using Baya.Application.Models.Common;
using Baya.Application.Models.Verification;
using Mediator;

namespace Baya.Application.Features.Verification.Commands.ReviewStep;

/// <summary>
/// Admin manual decision on a step. <c>Approve=false</c> requires a <c>RejectionReason</c>. Approving a
/// credential-bearing step (MoH / INO / criminal-record) records a <c>nurse_credentials</c> row — the
/// encrypted number plus a holder name that must cross-check against the verified identity. <c>StepId</c>
/// is route-supplied.
/// </summary>
public record AdminReviewStepCommand(
    long StepId,
    bool Approve,
    string? RejectionReason,
    string? CredentialNumber,
    string? HolderName,
    string? IssuingAuthority,
    DateOnly? IssuedAt,
    DateOnly? ExpiresAt,
    string? VerificationSource) : IRequest<OperationResult<ReviewStepResult>>;
