177 lines
9.4 KiB
Go
177 lines
9.4 KiB
Go
|
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 // значение поля
|
|||
|
}
|