using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[Serializable]
public class DialogueModel //<TPanel> where TPanel : AbstractPanel
{
    [NonSerialized]
    public string Header;

    public Func<string, DialogueModel, Panel> Panel = PanelFactory.BasePanel;

    [SerializeField]
    public string Sentence; // { get; set; }  // make set private but this will block inspector 

    [SerializeField]
    public List<PanelButtonStepModel> Buttons = new List<PanelButtonStepModel>();


    public DialogueModel() { }

    public DialogueModel(string _sentence)
    {
        Sentence = _sentence;
    }

    public DialogueModel(string _sentence, string _header)
    {
        Sentence = _sentence;

        Header = _header;
    }

    public DialogueModel(string _sentence, List<PanelButtonStepModel> _buttonsModelsList)
    {
        Sentence = _sentence;

        Buttons = _buttonsModelsList;
    }

    public DialogueModel(string _sentence, string _header, List<PanelButtonStepModel> _buttonsModelsList)
    {
        Sentence = _sentence;

        Header = _header;

        Buttons = _buttonsModelsList;
    }
}