using MediatR;
using TakeoutSaaS.Application.App.Members.PointsMall.Dto;

namespace TakeoutSaaS.Application.App.Members.PointsMall.Commands;

/// <summary>
/// 写入积分商城兑换记录命令。
/// </summary>
public sealed class WritePointMallRecordCommand : IRequest<MemberPointMallRecordDto>
{
    /// <summary>
    /// 门店标识。
    /// </summary>
    public long StoreId { get; init; }

    /// <summary>
    /// 积分商城商品标识。
    /// </summary>
    public long PointMallProductId { get; init; }

    /// <summary>
    /// 会员标识。
    /// </summary>
    public long MemberId { get; init; }

    /// <summary>
    /// 兑换时间（可空，默认当前 UTC）。
    /// </summary>
    public DateTime? RedeemedAt { get; init; }
}
