using iRIS.InsuranceCore.Code.Interfaces.AisIntegrationService.Models.Enums;
using System.Collections.Generic;

namespace iRIS.InsuranceCore.Code.Interfaces.AisIntegrationService.Models
{
    public class CommissionsWithSegmentRequest : CommissionsRequest
    {
        /// <summary>"Цепочка продаж" из сделки .</summary>
        [Newtonsoft.Json.JsonProperty("chainId", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public int? ChainId { get; set; }

        /// <summary>Код продукта.</summary>
        [Newtonsoft.Json.JsonProperty("productCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string ProductCode { get; set; }

        /// <summary>Код продукта ОСС.</summary>
        [Newtonsoft.Json.JsonProperty("productOssCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string ProductOssCode { get; set; }

        /// <summary>Премия по полису.</summary>
        [Newtonsoft.Json.JsonProperty("totalSum", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public decimal TotalSum { get; set; }

        /// <summary>Страховая сумма.</summary>
        [Newtonsoft.Json.JsonProperty("insuranceSum", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public decimal InsuranceSum { get; set; }

        /// <summary>Скидка в процентах.</summary>
        [Newtonsoft.Json.JsonProperty("discountPercentage", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public decimal DiscountPercentage { get; set; }

        /// <summary>Канал продаж.</summary>
        [Newtonsoft.Json.JsonProperty("costcenterCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string CostcenterCode { get; set; }

        /// <summary>Тип собственника (ФЛ/ЮЛ).</summary>
        [Newtonsoft.Json.JsonProperty("ownerType", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
        public SubjectType OwnerType { get; set; }

        /// <summary>Тип страхователя (ФЛ/ЮЛ).</summary>
        [Newtonsoft.Json.JsonProperty("insurantType", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
        public SubjectType InsurantType { get; set; }

        /// <summary>Первые 2 цифры кладра до уровня региона собственника.</summary>
        [Newtonsoft.Json.JsonProperty("registrationRegionKladr", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string RegistrationRegionKladr { get; set; }

        /// <summary>Минимальный возраст водителей.</summary>
        [Newtonsoft.Json.JsonProperty("driverMinAge", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public int? DriverMinAge { get; set; }

        /// <summary>Водители без ограничений.</summary>
        [Newtonsoft.Json.JsonProperty("isMultidrive", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public bool IsMultidrive { get; set; }

        /// <summary>Минимальный класс КБМ.</summary>
        [Newtonsoft.Json.JsonProperty("kbmClass", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string KbmClass { get; set; }

        /// <summary>Значение коэффициента КБМ по полису.</summary>
        [Newtonsoft.Json.JsonProperty("kbmValue", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public decimal? KbmValue { get; set; }

        /// <summary>Территориальный коэффициент (C_KT).</summary>
        [Newtonsoft.Json.JsonProperty("coefficientTerritory", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public decimal? CoefficientTerritory { get; set; }

        /// <summary>Данные по ТС.</summary>
        [Newtonsoft.Json.JsonProperty("auto", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public AutoRequest Auto { get; set; }

        /// <summary>Цель использования.</summary>
        [Newtonsoft.Json.JsonProperty("purposeOfUsing", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
        public PurposeOfUsingType? PurposeOfUsing { get; set; }

        /// <summary>Значение филиала в кодировке AIS.</summary>
        [Newtonsoft.Json.JsonProperty("branchAisCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string BranchAisCode { get; set; }

        /// <summary>Номер прошлого полиса при пролонгации.</summary>
        [Newtonsoft.Json.JsonProperty("previousPolicyNumber", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string PreviousPolicyNumber { get; set; }

        /// <summary>Признак продажи КАСКО+ОСАГО.</summary>
        [Newtonsoft.Json.JsonProperty("osagoPlusKasko", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public bool? OsagoPlusKasko { get; set; }

        /// <summary>Оформление через фронт-систему.</summary>
        [Newtonsoft.Json.JsonProperty("osagoB2B", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public bool? OsagoB2B { get; set; }

        /// <summary>Признак транзитного полиса.</summary>
        [Newtonsoft.Json.JsonProperty("isTransit", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public bool IsTransit { get; set; }

        /// <summary>Степень VIP цепочки.</summary>
        [Newtonsoft.Json.JsonProperty("osagoNoLimit", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public string OsagoNoLimit { get; set; }

        /// <summary>Регион регистрации = региону продажи.</summary>
        [Newtonsoft.Json.JsonProperty("policyCompanyMatch", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public bool? PolicyCompanyMatch { get; set; }

        /// <summary>Риски и премии.</summary>
        [Newtonsoft.Json.JsonProperty("coverages", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public List<CoverageDto> Coverages { get; set; }

        /// <summary>Необходимость расчета нагрузочного коэффициента.</summary>
        [Newtonsoft.Json.JsonProperty("needToGetLoadCoefficient", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public bool NeedToGetLoadCoefficient { get; set; }
    }
}


Добавь пожалуйста новые поля:
Параметр	Расшифровка	Откуда брать
"LAST_POLICY_COMPANY"	Филиал в прошлом полисе	Из UNI XML от ОСС (сохраняется в dbo.Prolongation.OssResponse), путь participants.customer.cashbook_id, где role="13" (роль "Страховщик").
Если customer с role="13" не найден, то из UNI XML от ОСС брать значение department и искать в Branch соответствующий этому department CodeAIS. Если и в таком случае (исключительный) не был определен код филиал или, по-другому, cashbook_id филиала, то не отправлять данный параметр.
"LAST_POLICY_NUM"	Номер прошлого полиса	Из IrisInsuranceDB.dbo.Deal.PreviousPolicyNumber (предпочтительнее) или IrisInsuranceDB.dbo.Prolongation.PolicySeriesNumber или из UNI XML от ОСС
"LAST_POLICY_KV"	КВ в прошлом полисе	Из UNI XML от ОСС (сохраняется в dbo.Prolongation.OssResponse), policy-prolcoeff.comission
"LONG_CALC_TYPE"	Тип пролонгации (ППГ/ПНГ)	Всегда значение "1" (расчет по актуальному тарификатору, ПНГ)