// ReSharper disable All

namespace MyTelegram.Schema.Help;

///<summary>
/// Contains info about a <a href="https://corefork.telegram.org/api/colors">color palette »</a>.
/// See <a href="https://corefork.telegram.org/constructor/help.PeerColorOption" />
///</summary>
[JsonDerivedType(typeof(TPeerColorOption), nameof(TPeerColorOption))]
public interface IPeerColorOption : IObject
{
    ///<summary>
    /// Flags, see <a href="https://corefork.telegram.org/mtproto/TL-combinators#conditional-fields">TL conditional fields</a>
    ///</summary>
    int Flags { get; set; }

    ///<summary>
    /// Whether this palette should not be displayed as an option to the user when choosing a palette to apply to profile pages or message accents.
    ///</summary>
    bool Hidden { get; set; }

    ///<summary>
    /// Palette ID.
    ///</summary>
    int ColorId { get; set; }

    ///<summary>
    /// Light mode palette. <br>Will be empty for IDs <code>0</code> to <code>6</code> inclusive, in which case a palette containing a single color from the following colors should be used: red, orange, violet, green, cyan, blue, pink for indexes 0 to 6 (i.e. the same colors used for randomized fallback <a href="https://corefork.telegram.org/api/colors">message accent colors</a>).
    /// See <a href="https://corefork.telegram.org/type/help.PeerColorSet" />
    ///</summary>
    MyTelegram.Schema.Help.IPeerColorSet? Colors { get; set; }

    ///<summary>
    /// Dark mode palette. Optional, defaults to the palette in <code>colors</code> (or the autogenerated palette for IDs <code>0</code> to <code>6</code>) if absent.
    /// See <a href="https://corefork.telegram.org/type/help.PeerColorSet" />
    ///</summary>
    MyTelegram.Schema.Help.IPeerColorSet? DarkColors { get; set; }

    ///<summary>
    /// Channels can use this palette only after reaching at least the <a href="https://corefork.telegram.org/api/boost">boost level</a> specified in this field.
    ///</summary>
    int? ChannelMinLevel { get; set; }

    ///<summary>
    /// Supergroups can use this palette only after reaching at least the <a href="https://corefork.telegram.org/api/boost">boost level</a> specified in this field.
    ///</summary>
    int? GroupMinLevel { get; set; }
}
