common/model/amo.go

220 lines
9.7 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 int32 `json:"Role"`
/* - группы пользователя в амо*/
Group int32 `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 int64 `json:"ID"`
/* - айдишник воронки в амо*/
Amoid int32 `json:"AmoID"`
/* - связь с аккаунтом в интеграции амо id аккаунта в амо*/
AccountID int32 `json:"AccountID"`
/* - название воронки в амо*/
Name string `json:"Name"`
/* - флаг архивной воронки в амо*/
Isarchive bool `json:"IsArchive"`
/* - флаг мягкого удаления*/
Deleted bool `json:"Deleted"`
/* - таймштамп создания воронки в нашей системе*/
Createdat int64 `json:"CreatedAt"`
}
type Step struct {
/* - айдишник в нашей системе Primary Key*/
ID int64 `json:"ID"`
/* - айдишник шага воронки в амо*/
Amoid int32 `json:"AmoID"`
/* - айдишник воронки в амо*/
Pipelineid int32 `json:"PipelineID"`
/* - связь с аккаунтом в интеграции амо id в амо*/
Accountid int32 `json:"AccountID"`
/* - название воронки в амо*/
Name string `json:"Name"`
/* - цвет шага в амо*/
Color string `json:"Color"`
/* - флаг мягкого удаления*/
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 Field struct {
/* - айдишник в нашей системе Primary Key*/
ID int64 `json:"ID"`
/* - айдишник кастомного поля в амо*/
Amoid int32 `json:"AmoID"`
/* - кодовое слово в амо*/
Code string `json:"Code"`
/* - связь с аккаунтом в интеграции амо id аккаунта в амо*/
Accountid int32 `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 FieldType `json:"Type"`
/* - флаг мягкого удаления*/
Deleted bool `json:"Deleted"`
/* - таймштамп создания воронки в нашей системе*/
Createdat int64 `json:"CreatedAt"`
}
type EntityType string
const (
LeadsType EntityType = "leads"
ContactsType EntityType = "contacts"
CompaniesType EntityType = "companies"
CustomersType EntityType = "customers"
)
type Rule struct {
/* - айдишник в нашей системе*/
ID int64 `json:"ID"`
/* - связь с аккаунтом в интеграции амо id в амо*/
Accountid int32 `json:"AccountID"`
/* - айдишник опроса*/
Quizid int32 `json:"QuizID"`
/* - айдишник ответственного за сделку*/
Performerid int32 `json:"PerformerID"`
/* - айдишник воронки*/
Pipelineid int32 `json:"PipelineID"`
/* - айдишник этапа*/
Stepid int32 `json:"StepID"`
/* - список UTM для этого опроса*/
Utms []int32 `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 int64 `json:"ID"`
/* - айдишник кастомного поля в амо*/
Amofieldid int32 `json:"AmoFieldID"`
/* - айдишник квиза*/
Quizid int32 `json:"QuizID"`
/* - связь с аккаунтом в интеграции амо id амо*/
Accountid int32 `json:"AccountID"`
/* - название тега в амо*/
Name string `json:"Name"`
/* - флаг мягкого удаления*/
Deleted bool `json:"Deleted"`
/* - таймштамп создания тега в нашей системе*/
Createdat int64 `json:"CreatedAt"`
}
type FieldType string
const (
TypeAmoText FieldType = "text" //Текст
TypeAmoNumeric FieldType = "numeric" //Число
TypeAmoCheckbox FieldType = "checkbox" //Флаг
TypeAmoSelect FieldType = "select" //Список
TypeAmoMultiselect FieldType = "multiselect" //Мультисписок
TypeAmoDate FieldType = "date" //Дата
TypeAmoUrl FieldType = "url" // Ссылка
TypeAmoTextarea FieldType = "textarea" // Текстовая область
TypeAmoRadiobutton FieldType = "radiobutton" // Переключатель
TypeAmoStreetAddress FieldType = "streetaddress" // Короткий адрес
TypeAmoSmartAddress FieldType = "smart_address" // Адрес
TypeAmoBirthday FieldType = "birthday" // День рождения
TypeAmoLegalEntity FieldType = "legal_entity" // Юр. лицо
TypeAmoDateTime FieldType = "date_time" // Дата и время
TypeAmoPrice FieldType = "price" //Цена
TypeAmoCategory FieldType = "category" // Категория
TypeAmoItems FieldType = "items" // Предметы
TypeAmoTrackingData FieldType = "tracking_data" // Отслеживаемые данные
TypeAmoLinkedEntity FieldType = "linked_entity" // Связь с другим элементом
TypeAmoChainedList FieldType = "chained_list" // Каталоги и списки (платная опция Супер-поля)
TypeAmoMonetary FieldType = "monetary" // Денежное (платная опция Супер-поля)
TypeAmoFile FieldType = "file" // Файл
TypeAmoPayer FieldType = "payer" // Плательщик (только в списке Счета-покупки)
TypeAmoSupplier FieldType = "supplier" // Поставщик (только в списке Счета-покупки)
TypeAmoMultiText FieldType = "multitext" // что то чего нет в списке полей но она есть в амо))
)
type CheckUserUtm struct {
ID int64 `json:"ID"`
Amofieldid int32 `json:"AmoFieldID"`
Quizid int32 `json:"QuizID"`
Accountid int32 `json:"AccountID"`
Name string `json:"Name"`
Status bool
}