amocrm/internal/models/createDeal.go

173 lines
9.2 KiB
Go
Raw Normal View History

2024-05-04 18:38:36 +00:00
package models
type DealReq struct {
2024-05-04 18:41:04 +00:00
Name string `json:"name"` // название сделки
Price int `json:"price"` // бюджет сделки
StatusID int32 `json:"status_id"` // id статуса (шага в нашем случае) в который добавляется сделка
PipelineID int32 `json:"pipeline_id"` // ID воронки, в которую добавляется сделка
CreatedBy int32 `json:"created_by"` // id пользователя amoid который создает сделку (тот кто подключил интеграцию)
UpdatedBy int `json:"updated_by"` // ID пользователя, изменяющий сделку. При передаче значения 0, сделка будет считаться измененной роботом
ClosedAt int64 `json:"closed_at"` // Дата закрытия сделки, передается в Unix Timestamp
CreatedAt int64 `json:"created_at"` // Дата создания сделки, передается в Unix Timestamp
UpdatedAt int64 `json:"updated_at"` // Дата изменения сделки, передается в Unix Timestamp
LossReasonID *int `json:"loss_reason_id,omitempty"` // ID причины отказа
ResponsibleUserID int32 `json:"responsible_user_id"` // ID пользователя, ответственного за сделку, в нашем случае PerformerID
CustomFieldsValues []FieldsValues `json:"custom_fields_values"` // Массив полей которые заполняются значениями
TagsToAdd []Tag `json:"tags_to_add"` // Массив тегов для добавления
2024-05-04 18:38:36 +00:00
Embed Embedd `json:"_embedded"`
2024-05-05 12:22:54 +00:00
RequestID string `json:"request_id"`
2024-05-04 18:38:36 +00:00
}
type FieldsValues struct {
2024-05-10 15:34:34 +00:00
FieldID int `json:"field_id"`
Values []interface{} `json:"values"`
2024-05-04 18:38:36 +00:00
}
type Values struct {
Value string `json:"value"` // пока так пока не понятно
}
2024-05-10 15:34:34 +00:00
type ValuesFile struct {
Value ValueFile `json:"value"`
}
type ValueFile struct {
FileUUID string `json:"file_uuid"`
VersionUUID string `json:"version_uuid"`
FileName string `json:"file_name"`
FileSize int64 `json:"file_size"`
}
2024-05-04 18:38:36 +00:00
type Embedd struct {
Tags []Tag `json:"tags"` // Данные тегов, добавляемых к сделке
Contact []Contact `json:"contacts"` // Данные контактов, которые будет прикреплены к сделке
Company []Company `json:"companies"` // Данные компании, которая будет прикреплена к сделке
Source Source `json:"source"`
}
type Contact struct {
2024-05-04 21:06:17 +00:00
Name string `json:"first_name"`
2024-05-05 16:06:49 +00:00
ResponsibleUserID int32 `json:"responsible_user_id"` // ID пользователя, ответственного за сделку, в нашем случае PerformerID
CreatedBy int32 `json:"created_by"` // id пользователя amoid который создает сделку (тот кто подключил интеграцию)
2024-05-04 21:06:17 +00:00
UpdatedBy int `json:"updated_by"`
2024-05-05 16:06:49 +00:00
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"` // Дата изменения сделки, передается в Unix Timestamp
2024-05-04 21:06:17 +00:00
CustomFieldsValues []FieldsValues `json:"custom_fields_values"` // Массив полей которые заполняются значениями
2024-05-04 18:38:36 +00:00
}
type Company struct {
2024-05-05 12:22:54 +00:00
Name string `json:"name"` // Название компании
ResponsibleUserID int32 `json:"responsible_user_id"` // ID пользователя, ответственного за сделку, в нашем случае PerformerID
CreatedBy int32 `json:"created_by"` // id пользователя amoid который создает сделку (тот кто подключил интеграцию)
UpdatedBy int `json:"updated_by"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"` // Дата изменения сделки, передается в Unix Timestamp
CustomFieldsValues []FieldsValues `json:"custom_fields_values"` // Массив полей которые заполняются значениями
2024-05-04 18:38:36 +00:00
}
type Source struct {
ExternalID int `json:"external_id"` // Внешний ID источника
Type string `json:"type"` // Тип источника. Для сделок, добавляемых интеграциями, поддерживается только widget
}
type DealResp struct {
DealID int32 `json:"id"` // ID сделки
2024-05-05 12:22:54 +00:00
ContactID int `json:"contact_id"` // ID контакта
CompanyID int `json:"company_id"` // ID компании
Merged bool `json:"merged"` // Флаг, который показывает, найден дубль подходящий под условия поиска дублей и произведено объединение или нет
RequestID []string `json:"request_id"` // Массив строк с пользовательскими идентификаторами, которые были переданы с каждой сущностью
2024-05-04 18:38:36 +00:00
}
type UpdateDealReq struct {
DealID int32 `json:"id"` // ID сделки
CustomFieldsValues []FieldsValues `json:"custom_fields_values"` // Массив полей которые заполняются значениями
}
type UpdateDealResp struct {
Embedded EmbeddedUpdateDeal `json:"_embedded"`
}
type EmbeddedUpdateDeal struct {
Leads []struct {
ID int32 `json:"id"`
UpdatedAt int64 `json:"updated_at"`
}
}
type Customer struct {
Name string `json:"name"`
NextPrice int `json:"next_price"`
NextDate int64 `json:"next_date"`
ResponsibleUserID int32 `json:"responsible_user_id"`
StatusID *int32 `json:"status_id,omitempty"`
Periodicity int `json:"periodicity"`
CreatedBy int `json:"created_by"`
UpdatedBy int `json:"updated_by"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
CustomFields []FieldsValues `json:"custom_fields_values"`
TagsToAdd []Tag `json:"tags_to_add"`
Embed Embedd `json:"_embedded"`
RequestID string `json:"request_id"`
}
type CustomerResp struct {
Embedded EmbeddedCreateCustomers `json:"_embedded"`
}
type EmbeddedCreateCustomers struct {
Customers []struct {
ID int32 `json:"id"`
RequestID string `json:"request_id"`
}
}
2024-05-10 15:34:34 +00:00
type CreateSession struct {
FileName string `json:"file_name"` // обязательное поле
FileSize int64 `json:"file_size"` // обязательное поле
FileUUID string `json:"file_uuid"` // UUID файла, для которого загружается новая версия файла. Если UUID не задан, то будет создан новый файл.
ContentType string `json:"content_type"` // MIME-тип файла
WithPreview bool `json:"with_preview"` // При установке данного флага для файла будет сгенерировано превью
}
// представляет данные о созданной сессии загрузки файла
type UploadSession struct {
SessionID int `json:"session_id"`
UploadURL string `json:"upload_url"`
MaxFileSize int64 `json:"max_file_size"`
MaxPartSize int64 `json:"max_part_size"`
}
// представляет информацию о загруженном файле
type UploadedFile struct {
UUID string `json:"uuid"`
Type string `json:"type"`
IsTrashed bool `json:"is_trashed"`
Name string `json:"name"`
SanitizedName string `json:"sanitized_name"`
Size int64 `json:"size"`
SourceID int `json:"source_id"`
VersionUUID string `json:"version_uuid"`
HasMultipleVersions bool `json:"has_multiple_versions"`
CreatedAt int64 `json:"created_at"`
CreatedBy struct {
ID int `json:"id"`
Type string `json:"type"`
} `json:"created_by"`
UpdatedAt int64 `json:"updated_at"`
DeletedAt int64 `json:"deleted_at"`
DeletedBy interface{} `json:"deleted_by"`
Metadata Metadata `json:"metadata"`
Previews []PreviewFile `json:"previews"`
}
type Metadata struct {
Extension string `json:"extension"`
MIMEType string `json:"mime_type"`
}
type PreviewFile struct {
DownloadLink string `json:"download_link"`
Width int `json:"width"`
Height int `json:"height"`
}