// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;

namespace OpenAI.Moderations
{
    internal partial class InternalModerationCategoryScores
    {
        private protected IDictionary<string, BinaryData> _additionalBinaryDataProperties;

        internal InternalModerationCategoryScores(float hate, float hateThreatening, float harassment, float harassmentThreatening, float illicit, float illicitViolent, float selfHarm, float selfHarmIntent, float selfHarmInstructions, float sexual, float sexualMinors, float violence, float violenceGraphic)
        {
            Hate = hate;
            HateThreatening = hateThreatening;
            Harassment = harassment;
            HarassmentThreatening = harassmentThreatening;
            Illicit = illicit;
            IllicitViolent = illicitViolent;
            SelfHarm = selfHarm;
            SelfHarmIntent = selfHarmIntent;
            SelfHarmInstructions = selfHarmInstructions;
            Sexual = sexual;
            SexualMinors = sexualMinors;
            Violence = violence;
            ViolenceGraphic = violenceGraphic;
        }

        internal InternalModerationCategoryScores(float hate, float hateThreatening, float harassment, float harassmentThreatening, float illicit, float illicitViolent, float selfHarm, float selfHarmIntent, float selfHarmInstructions, float sexual, float sexualMinors, float violence, float violenceGraphic, IDictionary<string, BinaryData> additionalBinaryDataProperties)
        {
            Hate = hate;
            HateThreatening = hateThreatening;
            Harassment = harassment;
            HarassmentThreatening = harassmentThreatening;
            Illicit = illicit;
            IllicitViolent = illicitViolent;
            SelfHarm = selfHarm;
            SelfHarmIntent = selfHarmIntent;
            SelfHarmInstructions = selfHarmInstructions;
            Sexual = sexual;
            SexualMinors = sexualMinors;
            Violence = violence;
            ViolenceGraphic = violenceGraphic;
            _additionalBinaryDataProperties = additionalBinaryDataProperties;
        }

        public float Hate { get; }

        public float HateThreatening { get; }

        public float Harassment { get; }

        public float HarassmentThreatening { get; }

        public float Illicit { get; }

        public float IllicitViolent { get; }

        public float SelfHarm { get; }

        public float SelfHarmIntent { get; }

        public float SelfHarmInstructions { get; }

        public float Sexual { get; }

        public float SexualMinors { get; }

        public float Violence { get; }

        public float ViolenceGraphic { get; }

        internal IDictionary<string, BinaryData> SerializedAdditionalRawData
        {
            get => _additionalBinaryDataProperties;
            set => _additionalBinaryDataProperties = value;
        }
    }
}
