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

namespace Baya.Application.Features.Variants.Commands.UpdateVariant;

/// <summary>
/// The owning nurse edits a variant's price, price unit, session count, and display name. The <b>option-set
/// is immutable</b> here — changing dimensions is modelled as create-new + deactivate-old so historical
/// meaning stays stable, which also means an edit can never collide with the duplicate-listing guard.
/// A blank <see cref="DisplayName"/> leaves the current one unchanged. <see cref="Id"/> comes from the route.
/// </summary>
public record UpdateVariantCommand(
    long Id,
    string Price,
    string PriceUnit,
    int? SessionCount,
    string? DisplayName) : IRequest<OperationResult<VariantDto>>;
