// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using System.Linq;

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

        internal InternalCreateModerationResponseResultCategoryAppliedInputTypes(IEnumerable<string> hate, IEnumerable<string> hateThreatening, IEnumerable<string> harassment, IEnumerable<string> harassmentThreatening, IEnumerable<string> illicit, IEnumerable<string> illicitViolent, IEnumerable<string> selfHarm, IEnumerable<string> selfHarmIntent, IEnumerable<string> selfHarmInstructions, IEnumerable<string> sexual, IEnumerable<string> sexualMinors, IEnumerable<string> violence, IEnumerable<string> violenceGraphic)
        {
            Hate = hate.ToList();
            HateThreatening = hateThreatening.ToList();
            Harassment = harassment.ToList();
            HarassmentThreatening = harassmentThreatening.ToList();
            Illicit = illicit.ToList();
            IllicitViolent = illicitViolent.ToList();
            SelfHarm = selfHarm.ToList();
            SelfHarmIntent = selfHarmIntent.ToList();
            SelfHarmInstructions = selfHarmInstructions.ToList();
            Sexual = sexual.ToList();
            SexualMinors = sexualMinors.ToList();
            Violence = violence.ToList();
            ViolenceGraphic = violenceGraphic.ToList();
        }

        internal InternalCreateModerationResponseResultCategoryAppliedInputTypes(IReadOnlyList<string> hate, IReadOnlyList<string> hateThreatening, IReadOnlyList<string> harassment, IReadOnlyList<string> harassmentThreatening, IReadOnlyList<string> illicit, IReadOnlyList<string> illicitViolent, IReadOnlyList<string> selfHarm, IReadOnlyList<string> selfHarmIntent, IReadOnlyList<string> selfHarmInstructions, IReadOnlyList<string> sexual, IReadOnlyList<string> sexualMinors, IReadOnlyList<string> violence, IReadOnlyList<string> 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;
        }

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