using MediatR;

namespace AdsTrackingService.API.Application.Queries;

/// <summary>
/// EN: Query to get conversions with optional filtering.
/// VI: Query để lấy conversions với tùy chọn lọc.
/// </summary>
public record GetConversionsQuery(
    Guid? CampaignId = null,
    Guid? UserId = null,
    DateTime? From = null,
    DateTime? To = null,
    int Skip = 0,
    int Take = 20
) : IRequest<IEnumerable<ConversionDto>>;

/// <summary>
/// EN: DTO for conversion response.
/// VI: DTO cho response conversion.
/// </summary>
public record ConversionDto(
    Guid Id,
    Guid AdvertiserId,
    Guid CampaignId,
    Guid UserId,
    string ConversionType,
    decimal ConversionValue,
    string Currency,
    DateTime ConversionTime
);
