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