// FlexiMotion // https://kybernetik.com.au/flexi-motion // Copyright 2023-2025 Kybernetik //

#if UNITY_EDITOR

using UnityEngine;

namespace FlexiMotion.Editor
{
    /// <summary>[Editor-Only] A welcome screen for <see cref="FlexiMotionComponent"/>.</summary>
    /// https://kybernetik.com.au/flexi-motion/api/FlexiMotion.Editor/FlexiMotionReadMe
    /// 
    //[CreateAssetMenu]
    [HelpURL(FMStrings.DocsURLs.APIDocumentation + "." + nameof(FlexiMotion.Editor) + "/" + nameof(FlexiMotionReadMe))]
    public class FlexiMotionReadMe : ReadMe
    {
        /************************************************************************************************************************/

        /// <summary>The release ID of the current version.</summary>
        /// <example><list type="bullet">
        /// <item>[1] = v1.0: 2023-01-08.</item>
        /// <item>[2] = v1.1: 2023-02-18.</item>
        /// <item>[3] = v1.2: 2023-04-02.</item>
        /// <item>[4] = v1.2.1: 2023-04-11.</item>
        /// <item>[5] = v1.2.2: 2023-04-12.</item>
        /// <item>[6] = v1.2.3: 2023-05-04.</item>
        /// <item>[7] = v1.2.4: 2025-05-24.</item>
        /// <item>[8] = v1.2.5: 2025-10-12.</item>
        /// </list></example>
        protected override int ReleaseNumber => 8;

        /// <inheritdoc/>
        protected override string VersionName => "v1.2.5";

        /// <inheritdoc/>
        protected override string ChangeLogURL => FMStrings.DocsURLs.ChangeLogPrefix + "v1";

        /// <inheritdoc/>
        protected override string PrefKey => nameof(FlexiMotionComponent);

        /// <inheritdoc/>
        protected override string Introduction
            => "Welcome to FlexiMotion," +
            " a high performance secondary motion simulator for flexible objects" +
            " such as hair, clothing, tails, and tentacles.";

        /// <inheritdoc/>
        protected override string BaseProductName => FMStrings.ProductName;

        /// <inheritdoc/>
        protected override string ProductName => FMStrings.ProductName + " Demo";

        /// <inheritdoc/>
        protected override string DocumentationURL => FMStrings.DocsURLs.Documentation;

        /// <inheritdoc/>
        protected override string ExamplesLabel => "Samples";

        /// <inheritdoc/>
        protected override string ExampleURL => FMStrings.DocsURLs.Samples;

        /// <inheritdoc/>
        protected override string UpdateURL => FMStrings.DocsURLs.LatestVersion;

        /************************************************************************************************************************/

        /// <inheritdoc/>
        public FlexiMotionReadMe() : base(
            new LinkSection("Forum",
                "for general discussions, feedback, and news",
                FMStrings.DocsURLs.Forum),
            new LinkSection("Issues",
                "for questions, suggestions, and bug reports",
                FMStrings.DocsURLs.Issues),
            new LinkSection("Email",
                "for anything private",
                GetEmailURL(FMStrings.DocsURLs.DeveloperEmail, FMStrings.ProductName),
                FMStrings.DocsURLs.DeveloperEmail))
        { }

        /************************************************************************************************************************/
    }
}

#endif

