﻿//----------------------
// <auto-generated>
// </auto-generated>
//----------------------


namespace MyNamespace
{
    #pragma warning disable // Disable all warnings

    public partial class Cat : Animal
    {
        [System.Text.Json.Serialization.JsonConstructor]
        public Cat()
            : base()
        {
        }

    }

    public partial class PersianCat : Cat
    {
        [System.Text.Json.Serialization.JsonConstructor]
        public PersianCat()
            : base()
        {
        }

    }

    [System.Text.Json.Serialization.JsonPolymorphic(TypeDiscriminatorPropertyName = "discriminator")]
    [System.Text.Json.Serialization.JsonDerivedType(typeof(Cat), typeDiscriminator: "Cat")]
    [System.Text.Json.Serialization.JsonDerivedType(typeof(PersianCat), typeDiscriminator: "PersianCat")]
    public abstract partial class Animal
    {
        [System.Text.Json.Serialization.JsonConstructor]
        protected Animal()
        {
        }

        private System.Collections.Generic.IDictionary<string, object> _additionalProperties;

        [System.Text.Json.Serialization.JsonExtensionData]
        public System.Collections.Generic.IDictionary<string, object> AdditionalProperties
        {
            get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary<string, object>()); }
            set { _additionalProperties = value; }
        }

    }
}