namespace InABox.Integration.Logikal
{

    public class LogikalBOMResponse<TBOM,TGroup,TStyle,TSupplier,TProfile,TGasket,TComponent,TGlass,TLabour> : LogikalResponse
        where TBOM : ILogikalBOM<TGroup,TStyle,TSupplier,TProfile,TGasket,TComponent,TGlass,TLabour>, new()
        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.BOM;

        public TBOM BOM { get; set; } = new TBOM();
        
        public override string ToString() => $"{BOM.SQLiteData?.Length ?? 0} bytes";
    }

}