// <auto-generated/>

#nullable disable

using System.ClientModel.Primitives;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
using Sample;

namespace Sample.Models
{
    public partial class DynamicModel
    {
        [global::System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SCME0001")]
        private global::System.ClientModel.Primitives.JsonPatch _patch;
        private global::System.Collections.Generic.IDictionary<string, string> _additionalStringProperties;
        private global::System.Collections.Generic.IDictionary<string, double> _additionalDoubleProperties;

        public DynamicModel(string p1)
        {
            global::Sample.Argument.AssertNotNull(p1, nameof(p1));

            P1 = p1;
            _additionalStringProperties = new global::Sample.ChangeTrackingDictionary<string, string>();
            _additionalDoubleProperties = new global::Sample.ChangeTrackingDictionary<string, double>();
        }

#pragma warning disable SCME0001 // Type is for evaluation purposes only and is subject to change or removal in future updates.
        internal DynamicModel(string p1, global::System.Collections.Generic.IDictionary<string, string> additionalProperties, global::System.Collections.Generic.IDictionary<string, double> additionalDoubleProperties, in global::System.ClientModel.Primitives.JsonPatch patch)
        {
            P1 = p1;
            _additionalStringProperties = additionalProperties;
            _additionalDoubleProperties = additionalDoubleProperties;
            _patch = patch;
        }
#pragma warning restore SCME0001 // Type is for evaluation purposes only and is subject to change or removal in future updates.

        [global::System.Text.Json.Serialization.JsonIgnoreAttribute]
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
        [global::System.Diagnostics.CodeAnalysis.ExperimentalAttribute("SCME0001")]
        public ref global::System.ClientModel.Primitives.JsonPatch Patch => ref _patch;

        public string P1 { get; set; }

        public global::System.Collections.Generic.IDictionary<string, string> AdditionalProperties => _additionalStringProperties;

        public global::System.Collections.Generic.IDictionary<string, double> AdditionalDoubleProperties => _additionalDoubleProperties;
    }
}
