﻿namespace JLGames.RocketDriver.Games.PanelManager
{
    internal sealed class PanelInfo : IPanelInfo
    {
        private readonly string m_Id;
        private readonly IPanelSettings m_Settings;
        private readonly int m_MaxDisplayNum;
        private readonly int m_ExtendType;

        public string Id => m_Id;
        public IPanelSettings Settings => m_Settings;
        public IPanelAssetSettings AssetSettings => m_Settings.AssetSettings;
        public int MaxDisplayNum => m_MaxDisplayNum;
        public int ExtendType => m_ExtendType;

        public override string ToString()
        {
            return $"{{Id={m_Id}, Settings={m_Settings}, Asset={m_Settings.AssetSettings}}}";
        }

        public PanelInfo(string id, string bundleName, string assetPath)
        {
            m_Id = id;
            m_Settings = new PanelSettings();
            m_Settings.SetAssetSettings(bundleName, assetPath, null, null);
            m_MaxDisplayNum = 1;
        }

        public PanelInfo(string id, IPanelSettings settings, int maxDisplayNum, int extendType)
        {
            m_Id = id;
            m_Settings = settings;
            m_MaxDisplayNum = maxDisplayNum;
            m_ExtendType = extendType;
        }
    }
}