common/model/amo.go

181 lines
7.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
type User struct {
/* - айдишник в нашей системе Primary Key*/
ID int64 `json:"ID"`
/* - id пользователя из токена в нашей системе*/
Accountid string `json:"AccountID"`
/* - айдишник пользователя в амо*/
AmoID int32 `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 int32 `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 int64 `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"`
}