package models type CreatingDealReq struct { Fields CreateDealFields `json:"fields"` //Params struct { // RegisterSonetEvent string `json:"REGISTER_SONET_EVENT"` // Зарегистрировать ли событие добавления сделки в живой ленте. Возможные значения: Y/N def - Y //} `json:"params"` } type CreateDealFields struct { Title string `json:"TITLE"` // название TypeID string `json:"TYPE_ID"` // шаг сделки только с "ENTITY_ID":"DEAL_TYPE","STATUS_ID":"SALE" StageID string `json:"STAGE_ID"` // стадия сделки, шаг "ENTITY_ID":"DEAL_STAGE","STATUS_ID":"NEW" CompanyID int32 `json:"COMPANY_ID"` // id компании ContactIDs []int32 `json:"CONTACT_IDS"` // id контакта Opened string `json:"OPENED"` // открыта или нет Y/N AssignedByID int `json:"ASSIGNED_BY_ID"` // ответсвенный CategoryID int32 `json:"CATEGORY_ID"` // воронка id воронки SourceID string `json:"SOURCE_ID"` // тип источника, шаг "ENTITY_ID":"SOURCE","STATUS_ID":"CALL" UtmSource string `json:"UTM_SOURCE"` // Рекламная система (Google-Adwords и другие) UtmMedium string `json:"UTM_MEDIUM"` // Тип трафика. Возможные значения:CPC — объявления, CPM — баннеры UtmCampaign string `json:"UTM_CAMPAIGN"` // Обозначение рекламной кампании UtmContent string `json:"UTM_CONTENT"` // Содержание кампании. Например, для контекстных объявлений UtmTerm string `json:"UTM_TERM"` // Условие поиска кампании. Например, ключевые слова контекстной рекламы // todo умаю пока не нужны //IsRecurring string `json:"IS_RECURRING"` // Является ли сделка регулярной (Y/N) //IsReturnCustomer string `json:"IS_RETURN_CUSTOMER"` // Является ли сделка повторной (Y/N) //IsRepeatedApproach string `json:"IS_REPEATED_APPROACH"` // Является ли сделка повторным обращением (Y/N) //Probability int `json:"PROBABILITY"` // Вероятность успеха сделки, % //CurrencyID string `json:"CURRENCY_ID"` // Идентификатор валюты сделки //Opportunity float64 `json:"OPPORTUNITY"` // Сумма сделки //IsManualOpportunity string `json:"IS_MANUAL_OPPORTUNITY"` // Включен ли ручной расчет суммы (Y/N) //TaxValue float64 `json:"TAX_VALUE"` // Сумма налога //BeginDate string `json:"BEGINDATE"` // Дата начала сделки //CloseDate string `json:"CLOSEDATE"` // Дата завершения сделки //Closed string `json:"CLOSED"` // Сделка закрыта (Y/N) //Comments string `json:"COMMENTS"` // Комментарии к сделке //SourceDescription string `json:"SOURCE_DESCRIPTION"` // Описание источника //AdditionalInfo string `json:"ADDITIONAL_INFO"` // Дополнительная информация //LocationID string `json:"LOCATION_ID"` // Местоположение клиента //OriginatorID string `json:"ORIGINATOR_ID"` // Идентификатор источника данных //OriginID string `json:"ORIGIN_ID"` // Идентификатор элемента в источнике данных //Trace string `json:"TRACE"` // Информация для сквозной аналитики //UfCrmCustomField []string `json:"UF_CRM_..."` // Пользовательские поля CRM //ParentID string `json:"PARENT_ID_..."` // Поля связей со смарт-процессами } //func (c *CreatingDealReq) FormattingToMap(fieldAnswer map[string]string) map[string]map[string]interface{} { // resultFields := make(map[string]interface{}) // result := make(map[string]map[string]interface{}) // // fields := reflect.ValueOf(c.Fields) // fieldType := reflect.TypeOf(c.Fields) // // for i := 0; i < fields.NumField(); i++ { // field := fields.Field(i) // fieldName := fieldType.Field(i).Tag.Get("json") // // switch field.Kind() { // case reflect.String: // resultFields[fieldName] = field.String() // case reflect.Int32, reflect.Int: // resultFields[fieldName] = field.Int() // case reflect.Slice: // if field.Type().Elem().Kind() == reflect.Int32 { // resultFields[fieldName] = field.Interface().([]int32) // } // } // } // // for key, value := range fieldAnswer { // resultFields[key] = value // } // result["fields"] = resultFields // // return result //} type MultiResp struct { ID int32 `json:"result"` }