namespace CMSMicroservice.Application.CommissionCQ.Queries.GetUserWeeklyBalances;

public class GetUserWeeklyBalancesResponseDto
{
    public MetaData MetaData { get; set; }
    public List<GetUserWeeklyBalancesResponseModel> Models { get; set; }
}

public class GetUserWeeklyBalancesResponseModel
{
    public long Id { get; set; }
    public long UserId { get; set; }
    public string UserFullName { get; set; } = string.Empty;
    public long WeekDefinitionId { get; set; }
    public string WeekDisplayName { get; set; } = string.Empty;
    
    // چپ
    public int LeftLegNewMembers { get; set; }
    public int LeftLegCarryover { get; set; }
    public int LeftLegTotal { get; set; }
    
    // راست  
    public int RightLegNewMembers { get; set; }
    public int RightLegCarryover { get; set; }
    public int RightLegTotal { get; set; }
    
    public int TotalBalances { get; set; }
    public long WeeklyPoolContribution { get; set; }
    public DateTime? CalculatedAt { get; set; }
    public bool IsExpired { get; set; }
    public DateTimeOffset Created { get; set; }
    
    // Package info
    public long PackageId { get; set; }
    public string PackageTitle { get; set; } = string.Empty;

    // نتیجه COUNT(*) OVER() از SP — فقط در خواندن از SP پر می‌شود
    public int TotalCount { get; set; }
}
