using MediatR;

namespace MembershipService.API.Application.Commands;

/// <summary>
/// EN: Command to create a new loyalty stamp card.
/// VI: Command de tao stamp card loyalty moi.
/// </summary>
public record CreateStampCardCommand(
    Guid ShopId,
    Guid MemberId,
    string CardName,
    int TotalStampsRequired = 10
) : IRequest<CreateStampCardResult>;

/// <summary>
/// EN: Result of create stamp card command.
/// VI: Ket qua cua create stamp card command.
/// </summary>
public record CreateStampCardResult(
    Guid StampCardId,
    Guid ShopId,
    Guid MemberId,
    string CardName,
    int TotalStampsRequired,
    DateTime CreatedAt
);
