using System;
using System.Collections.Generic;
using System.Linq;

namespace InABox.Integration.Logikal
{
    public class LogikalElevationDetailResponse<TElevation,TGroup,TStyle,TSupplier,TProfile,TGasket,TComponent,TGlass,TLabour> : LogikalResponse
        where TElevation : ILogikalElevationDetail<TGroup,TStyle,TSupplier,TProfile,TGasket,TComponent,TGlass,TLabour>
        where TGroup : ILogikalGroup
        where TStyle : ILogikalStyle
        where TSupplier : ILogikalSupplier
        where TProfile : ILogikalProfile
        where TGasket : ILogikalGasket
        where TComponent : ILogikalComponent
        where TGlass : ILogikalGlass
        where TLabour : ILogikalLabour
    {

        public override LogikalMethod Method() => LogikalMethod.ElevationDetail;

        public Dictionary<Guid,Tuple<byte[], byte[]>> Data { get; } = new Dictionary<Guid,Tuple<byte[], byte[]>>();

        public TElevation[] Elevations { get; set; } = new TElevation[] { };

        public override string ToString() => $"{Elevations?.Count() ?? 0} elevations";
    }


}