using MediatR;

namespace MissionService.API.Application.Commands;

/// <summary>
/// EN: Command to perform daily check-in for a user
/// VI: Command thực hiện điểm danh hàng ngày cho user
/// </summary>
public record PerformCheckInCommand(Guid UserId) : IRequest<CheckInResult>;

/// <summary>
/// EN: Result of check-in operation
/// VI: Kết quả thao tác check-in
/// </summary>
public record CheckInResult(
    bool Success,
    int CurrentStreak,
    decimal DailyPoints,
    decimal StreakBonus,
    decimal MilestoneBonus,
    decimal TotalPoints,
    bool IsMilestone,
    string? Message);
