common/model/bitrix.go

177 lines
9.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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