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

/// <summary>
/// Class for holding all (static) data about a certain course
/// </summary>
[CreateAssetMenu(menuName = "Create new Scriptable/Course")]
public class Course : ScriptableObject
{
    /// <summary>
    /// Small class to hold information about a single learnable (e.g., a word or a letter)
    /// </summary>
    [Serializable]
    public class Learnable
    {
        /// <summary>
        /// Name of the word/letter to learn
        /// </summary>
        public string name;

        /// <summary>
        /// Sprite of this word/letter
        /// </summary>
        public Sprite image;

        /// <summary>
        /// Example video clip
        /// </summary>
        public VideoClip clip;
    }

    /// <summary>
    /// Index of the course
    /// </summary>
    public CourseIndex index;

    /// <summary>
    /// The course title
    /// </summary>
    public string title;

    /// <summary>
    /// A short description of the course
    /// </summary>
    public string description;

    /// <summary>
    /// Reference to the course thumbnail
    /// </summary>
    public Sprite thumbnail;

    /// <summary>
    /// List of all learnable words/letters
    /// </summary>
    public List<Learnable> learnables = new List<Learnable>();
}
