common/model/bitrix.go

177 lines
9.4 KiB
Go
Raw Permalink Normal View History

2025-05-13 13:40:18 +00:00
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 // значение поля
}