using LightlessSync.API.Data;
using LightlessSync.API.Data.Enum;
using LightlessSync.API.Dto.Group;
using LightlessSync.PlayerData.Pairs;

namespace LightlessSync.UI.Models;

public sealed record PairUiEntry(
    PairDisplayEntry DisplayEntry,
    string AliasOrUid,
    string DisplayName,
    string Note,
    bool IsVisible,
    bool IsOnline,
    bool IsDirectlyPaired,
    bool IsOneSided,
    bool HasAnyConnection,
    bool IsPaused,
    UserPermissions SelfPermissions,
    UserPermissions OtherPermissions,
    IndividualPairStatus? PairStatus,
    long LastAppliedDataBytes,
    long LastAppliedDataTris,
    long LastAppliedApproximateVramBytes,
    long LastAppliedApproximateEffectiveVramBytes,
    IPairHandlerAdapter? Handler)
{
    public PairUniqueIdentifier Ident => DisplayEntry.Ident;
    public IReadOnlyList<GroupFullInfoDto> Groups => DisplayEntry.Groups;
}
