package model import "time" type BitrixAccountUser struct { ID int64 `json:"id"` // ID пользователя AccountID string `json:"accountID"` // ID портала битрикса, id account company BitrixIDUserID string `json:"bitrixUserID"` // ID пользователя в битриксе Name string `json:"name"` // Имя LastName string `json:"lastName"` // фамилия SecondName string `json:"secondName"` // отчество Title string `json:"title"` Email string `json:"email"` // почта UFDepartment []int32 `json:"uf_department"` WorkPosition string `json:"workPosition"` // должность Deleted bool `json:"deleted"` /* - флаг мягкого удаления*/ CreatedAt time.Time `json:"createdAt"` /* - таймштамп создания воронки в нашей системе*/ } type BitrixAccount struct { ID int64 `json:"id"` // ID компании AccountID string `json:"accountID"` // ID аккаунта нас BitrixID string `json:"bitrixID"` // ID портала битрикса Deleted bool `json:"deleted"` CreatedAt time.Time `json:"createdAt"` Subdomain string `json:"subdomain"` // поддомен Stale bool `json:"stale"` } type PipelineBitrix struct { ID int64 `json:"ID"` // айдишник в нашей системе Primary Key BitrixID int32 `json:"bitrixID"` /* - айдишник воронки*/ AccountID string `json:"accountID"` // ID портала битрикса, id account company Name string `json:"name"` // название EntityTypeId IntegerEntityType `json:"entityTypeId"` // тип по номерам Deleted bool `json:"deleted"` /* - флаг мягкого удаления*/ Createdat int64 `json:"createdAt"` /* - таймштамп создания воронки в нашей системе*/ } type StepBitrix struct { ID int64 `json:"ID"` /* - айдишник в нашей системе Primary Key*/ AccountID string `json:"accountID"` // ID портала битрикса, id account company BitrixID string `json:"bitrixID"` /* - айдишник состояния в битриксе*/ EntityID string `json:"entityID"` // тип сущности StatusID string `json:"statusID"` // текстовый формат id статуса Name string `json:"name"` // название NameInit string `json:"nameInit"` Color string `json:"color"` // цвет PipelineID int32 `json:"pipelineID"` // id воронки Deleted bool `json:"deleted"` /* - флаг мягкого удаления*/ Createdat int64 `json:"createdAt"` /* - таймштамп создания воронки в нашей системе*/ } //type Tag struct { // /* - айдишник в нашей системе Primary Key*/ // ID int64 `json:"ID"` // /* - айдишник тега в амо*/ // Amoid int32 `json:"AmoID"` // /* - связь с аккаунтом в интеграции амо id аккаунта в амо*/ // Accountid int32 `json:"AccountID"` // /* - сущность, к которой принадлежит этот тег. Наверное, стоит сделать через enum в базе*/ // Entity EntityType `json:"Entity"` // /* - название тега в амо*/ // Name string `json:"Name"` // /* - цвет тега в амо*/ // Color *string `json:"Color"` // /* - флаг мягкого удаления*/ // Deleted bool `json:"Deleted"` // /* - таймштамп создания тега в нашей системе*/ // Createdat int64 `json:"CreatedAt"` //} type BitrixField struct { ID int64 `json:"ID"` /* - айдишник в нашей системе Primary Key*/ AccountID string `json:"accountID"` // ID портала битрикса, id account company BitrixID string `json:"bitrixID"` // id field in bitrix int or string))) EntityID FieldsType `json:"entityID"` // тип поля FieldName string `json:"fieldName"` // имя поля, которое втсраивается в request EditFromLabel string `json:"editFromLabel"` // заголовк вопроса тут FieldType CustomFieldsType `json:"fieldType"` // тип поля Deleted bool `json:"deleted"` /* - флаг мягкого удаления*/ Createdat int64 `json:"createdAt"` /* - таймштамп создания воронки в нашей системе*/ } type BitrixRulesReq struct { PerformerID string `json:"PerformerID"` // айдишник ответственного за сделку PipelineID int32 `json:"PipelineID"` // айдишник воронки TypeID string `json:"TypeID"` // шаг сделки только с "ENTITY_ID":"DEAL_TYPE","STATUS_ID":"SALE" StageID string `json:"StageID"` // стадия сделки, шаг "ENTITY_ID":"DEAL_STAGE","STATUS_ID":"NEW" SourceID string `json:"SourceID"` // тип источника, шаг "ENTITY_ID":"SOURCE","STATUS_ID":"CALL" FieldsRule BitrixFieldRules `json:"FieldsRule"` // правила заполнения полей сущностей в амо TagsToAdd TagsToAdd `json:"TagsToAdd"` // теги добавляемые к сделке todo kostil' LeadFlag bool `json:"LeadFlag"` // флаг показывающий на то что нужен лид а не дил StatusID string `json:"StatusID"` // Идентификатор стадии лида } type BitrixFieldRules struct { Lead BitrixFieldRule `json:"lead"` Deal BitrixFieldRule `json:"deal"` Company BitrixFieldRule `json:"company"` Contact BitrixContactRules `json:"contact"` } type BitrixContactRules struct { // ключ имя, значение id кастомного поля ContactRuleMap map[string]string QuestionID map[int]string `json:"QuestionID"` // ключ id вопроса значение id астомного поля } type BitrixFieldRule struct { QuestionID map[int]string `json:"QuestionID"` } type BitrixRule struct { ID int64 `json:"ID"` // айдишник в нашей системе AccountID string `json:"accountID"` // ID портала битрикса, id account company QuizID int32 `json:"QuizID"` // айдишник опроса PerformerID string `json:"PerformerID"` // айдишник ответственного за сделку PipelineID int32 `json:"PipelineID"` // айдишник воронки TypeID string `json:"TypeID"` // шаг сделки только с "ENTITY_ID":"DEAL_TYPE","STATUS_ID":"SALE" StageID string `json:"StageID"` // стадия сделки, шаг "ENTITY_ID":"DEAL_STAGE","STATUS_ID":"NEW" SourceID string `json:"SourceID"` // тип источника, шаг "ENTITY_ID":"SOURCE","STATUS_ID":"CALL" FieldsRule BitrixFieldRules `json:"FieldsRule"` // правила заполнения полей сущностей в амо TagsToAdd TagsToAdd `json:"TagsToAdd"` // теги добавляемые к сделке todo kostil' Deleted bool `json:"Deleted"` // флаг мягкого удаления CreatedAt int64 `json:"CreatedAt"` // таймштамп создания LeadFlag bool `json:"LeadFlag"` // флаг показывающий на то что нужен лид а не дил StatusID string `json:"StatusID"` // Идентификатор стадии лида } type BitrixUsersTrueResults struct { QuizID int64 AnswerID int64 Result bool QuestionID int64 Content string Session string AccessToken string AmoAccountID string UTMs UTMSavingMap FieldsRule BitrixFieldRules TagsToAdd TagsToAdd PerformerID string TypeID string // шаг сделки только с "ENTITY_ID":"DEAL_TYPE","STATUS_ID":"SALE" StageID string // стадия сделки, шаг "ENTITY_ID":"DEAL_STAGE","STATUS_ID":"NEW" SourceID string // тип источника, шаг "ENTITY_ID":"SOURCE","STATUS_ID":"CALL" PipelineID int32 PerformerName string SubDomain string QuizAccountID string LeadFlag bool StatusID string // Идентификатор стадии лида } //var TypeMapping = map[string]FieldType{ // "variant": TypeAmoText, //TypeAmoChainedList, // "images": TypeAmoText, //TypeAmoFile, // "varimg": TypeAmoText, //TypeAmoFile, // "file": TypeAmoFile, // "text": TypeAmoText, // "emoji": TypeAmoText, // "select": TypeAmoText, //TypeAmoSelect, // "date": TypeAmoText, //TypeAmoDate, // "number": TypeAmoText, //TypeAmoNumeric, // "page": TypeAmoText, // "rating": TypeAmoText, // "result": TypeAmoText, //} type ContactBitrix struct { ID int64 AccountID string // id аккаунта в амо к которому привязан контакт BitrixID int32 // id контакта в амо Field string // значение поля }