181 lines
7.4 KiB
Go
181 lines
7.4 KiB
Go
|
package model
|
|||
|
|
|||
|
type User struct {
|
|||
|
/* - айдишник в нашей системе Primary Key*/
|
|||
|
ID int `json:"ID"`
|
|||
|
/* - id пользователя из токена в нашей системе*/
|
|||
|
Accountid string `json:"AccountID"`
|
|||
|
/* - айдишник пользователя в амо*/
|
|||
|
AmoID int `json:"AmocrmID"`
|
|||
|
/* - имя аккаунта в амо*/
|
|||
|
Name string `json:"Name"`
|
|||
|
/* - почта пользователя из амо*/
|
|||
|
Email string `json:"Email"`
|
|||
|
/* - роль пользователя в амо*/
|
|||
|
Role string `json:"Role"`
|
|||
|
/* - группы пользователя в амо*/
|
|||
|
Group []UserGroups `json:"Group"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания аккаунта*/
|
|||
|
Createdat int64 `json:"CreatedAt"`
|
|||
|
/* - поддомен организации в амо*/
|
|||
|
Subdomain string `json:"Subdomain"`
|
|||
|
/* - айдишник пользвателя, который подключал интеграцию*/
|
|||
|
Amouserid int `json:"AmoUserID"`
|
|||
|
/* - страна указанная в настройках амо*/
|
|||
|
Country string `json:"Country"`
|
|||
|
}
|
|||
|
|
|||
|
type UserGroups struct {
|
|||
|
ID int `json:"id" bson:"id"`
|
|||
|
Name string `json:"name" bson:"name"`
|
|||
|
UUID interface{} `json:"uuid" bson:"uuid"`
|
|||
|
}
|
|||
|
|
|||
|
type Token struct {
|
|||
|
AccountID string `json:"account_id"` // id в квизе
|
|||
|
RefreshToken string `json:"refresh_token"` // 80 дней
|
|||
|
AccessToken string `json:"access_token"` // 20 минут
|
|||
|
AuthCode string `json:"auth_code"`
|
|||
|
Expiration int64 `json:"expiration"` // таймшамп времени когда кончится AccessToken
|
|||
|
CreatedAt int64 `json:"created_at"` // таймшамп времени создания, нужен для отслеживания 80 дней
|
|||
|
}
|
|||
|
|
|||
|
type Pipeline struct {
|
|||
|
// айдишник в нашей системе Primary Key
|
|||
|
ID int `json:"ID"`
|
|||
|
/* - айдишник воронки в амо*/
|
|||
|
Amoid int `json:"AmoID"`
|
|||
|
/* - связь с аккаунтом в интеграции амо id аккаунта в амо*/
|
|||
|
AccountID int `json:"AccountID"`
|
|||
|
/* - название воронки в амо*/
|
|||
|
Name string `json:"Name"`
|
|||
|
/* - флаг архивной воронки в амо*/
|
|||
|
Isarchive bool `json:"IsArchive"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания воронки в нашей системе*/
|
|||
|
Createdat int64 `json:"CreatedAt"`
|
|||
|
}
|
|||
|
|
|||
|
type Step struct {
|
|||
|
/* - айдишник в нашей системе Primary Key*/
|
|||
|
ID int `json:"ID"`
|
|||
|
/* - айдишник шага воронки в амо*/
|
|||
|
Amoid int `json:"AmoID"`
|
|||
|
/* - айдишник воронки в амо*/
|
|||
|
Pipelineid int `json:"PipelineID"`
|
|||
|
/* - связь с аккаунтом в интеграции амо id в амо*/
|
|||
|
Accountid int `json:"AccountID"`
|
|||
|
/* - название воронки в амо*/
|
|||
|
Name string `json:"Name"`
|
|||
|
/* - цвет шага в амо*/
|
|||
|
Color string `json:"Color"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания воронки в нашей системе*/
|
|||
|
Createdat int64 `json:"CreatedAt"`
|
|||
|
}
|
|||
|
|
|||
|
type Tag struct {
|
|||
|
/* - айдишник в нашей системе Primary Key*/
|
|||
|
ID int `json:"ID"`
|
|||
|
/* - айдишник тега в амо*/
|
|||
|
Amoid int `json:"AmoID"`
|
|||
|
/* - связь с аккаунтом в интеграции амо id аккаунта в амо*/
|
|||
|
Accountid int `json:"AccountID"`
|
|||
|
/* - сущность, к которой принадлежит этот тег. Наверное, стоит сделать через enum в базе*/
|
|||
|
Entity EntityType `json:"Entity"`
|
|||
|
/* - название тега в амо*/
|
|||
|
Name string `json:"Name"`
|
|||
|
/* - цвет тега в амо*/
|
|||
|
Color *string `json:"Color"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания тега в нашей системе*/
|
|||
|
Createdat int64 `json:"CreatedAt"`
|
|||
|
}
|
|||
|
|
|||
|
type Field struct {
|
|||
|
/* - айдишник в нашей системе Primary Key*/
|
|||
|
ID int `json:"ID"`
|
|||
|
/* - айдишник кастомного поля в амо*/
|
|||
|
Amoid int `json:"AmoID"`
|
|||
|
/* - кодовое слово в амо*/
|
|||
|
Code string `json:"Code"`
|
|||
|
/* - связь с аккаунтом в интеграции амо id аккаунта в амо*/
|
|||
|
Accountid int `json:"AccountID"`
|
|||
|
/* - название воронки в амо*/
|
|||
|
Name string `json:"Name"`
|
|||
|
/* - тип сущности в амо, для которой это кастомное поле*/
|
|||
|
Entity EntityType `json:"Entity"`
|
|||
|
/* - тип поля https://www.amocrm.ru/developers/content/crm_platform/custom-fields#%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D0%B5-%D1%82%D0%B8%D0%BF%D1%8B-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9*/
|
|||
|
Type string `json:"Type"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания воронки в нашей системе*/
|
|||
|
Createdat int64 `json:"CreatedAt"`
|
|||
|
}
|
|||
|
|
|||
|
type EntityType string
|
|||
|
|
|||
|
const (
|
|||
|
LeadsTags EntityType = "leads"
|
|||
|
ContactsTags EntityType = "contacts"
|
|||
|
CompaniesTags EntityType = "companies"
|
|||
|
CustomersTags EntityType = "customers"
|
|||
|
)
|
|||
|
|
|||
|
type Rule struct {
|
|||
|
/* - айдишник в нашей системе*/
|
|||
|
ID int `json:"ID"`
|
|||
|
/* - связь с аккаунтом в интеграции амо id в амо*/
|
|||
|
Accountid int `json:"AccountID"`
|
|||
|
/* - айдишник опроса*/
|
|||
|
Quizid int `json:"QuizID"`
|
|||
|
/* - айдишник ответственного за сделку*/
|
|||
|
Performerid int `json:"PerformerID"`
|
|||
|
/* - айдишник воронки*/
|
|||
|
Pipelineid int `json:"PipelineID"`
|
|||
|
/* - айдишник этапа*/
|
|||
|
Stepid int `json:"StepID"`
|
|||
|
/* - список UTM для этого опроса*/
|
|||
|
Utms []int `json:"UTMs"`
|
|||
|
/* - правила заполнения полей сущностей в амо*/
|
|||
|
Fieldsrule Fieldsrule `json:"FieldsRule"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания воронки в нашей системе*/
|
|||
|
Createdat int `json:"CreatedAt"`
|
|||
|
}
|
|||
|
|
|||
|
type Fieldsrule struct {
|
|||
|
Lead []FieldRule `json:"Lead"`
|
|||
|
Contact []FieldRule `json:"Contact"`
|
|||
|
Company []FieldRule `json:"Company"`
|
|||
|
Customer []FieldRule `json:"Customer"`
|
|||
|
}
|
|||
|
|
|||
|
type FieldRule struct {
|
|||
|
/* - сопоставление айдишника вопроса полю, которое будет заполняться ответом. соответственно QuestionID это айдишник вопроса. это я так мэпу пытался записать*/
|
|||
|
Questionid map[int]int `json:"QuestionID"` // ключ id вопроса значение id астомного поля
|
|||
|
}
|
|||
|
|
|||
|
type UTM struct {
|
|||
|
/* - айдишник в нашей системе Primary Key*/
|
|||
|
ID int `json:"ID" bson:"ID"`
|
|||
|
/* - айдишник кастомного поля в амо*/
|
|||
|
Amofieldid int `json:"AmoFieldID"`
|
|||
|
/* - айдишник квиза*/
|
|||
|
Quizid int `json:"QuizID"`
|
|||
|
/* - связь с аккаунтом в интеграции амо id амо*/
|
|||
|
Accountid int `json:"AccountID"`
|
|||
|
/* - название тега в амо*/
|
|||
|
Name string `json:"Name"`
|
|||
|
/* - флаг мягкого удаления*/
|
|||
|
Deleted bool `json:"Deleted"`
|
|||
|
/* - таймштамп создания тега в нашей системе*/
|
|||
|
Createdat int64 `json:"CreatedAt"`
|
|||
|
}
|