using MediatR;

namespace MembershipService.API.Application.Queries;

/// <summary>
/// EN: Query to get stamp card status for a member at a shop.
/// VI: Query de lay trang thai stamp card cho member tai shop.
/// </summary>
public record GetStampCardQuery(Guid ShopId, Guid MemberId) : IRequest<StampCardDto?>;

/// <summary>
/// EN: Stamp card DTO.
/// VI: DTO stamp card.
/// </summary>
public record StampCardDto(
    Guid Id,
    Guid ShopId,
    Guid MemberId,
    string CardName,
    int TotalStampsRequired,
    int CurrentStamps,
    bool IsCompleted,
    bool RewardClaimed,
    DateTime CreatedAt,
    DateTime? CompletedAt
);
