init field type enum
This commit is contained in:
parent
8f7c74046b
commit
6d80f5c5e8
@ -761,7 +761,7 @@ WHERE s.amoID = (update_data ->> 'AmoID')::INT
|
||||
UPDATE fields AS f
|
||||
SET name = (update_data ->> 'Name')::varchar(50),
|
||||
code = (update_data ->> 'Code')::varchar(255),
|
||||
type = (update_data ->> 'Type')::varchar(50),
|
||||
type = (update_data ->> 'Type')::fieldtype,
|
||||
createdAt = CURRENT_TIMESTAMP
|
||||
FROM json_array_elements($1::json) AS update_data
|
||||
WHERE f.amoID = (update_data ->> 'AmoID')::INT
|
||||
@ -839,7 +839,7 @@ WITH user_data AS (
|
||||
COALESCE(field->>'Code', '')::varchar(255) AS code,
|
||||
COALESCE(field->>'Name', '')::varchar(50) AS name,
|
||||
CAST(field->>'Entity' AS entitytype) AS Entity,
|
||||
COALESCE(field->>'Type', '')::varchar(50) AS type,
|
||||
COALESCE(field->>'Type', '')::fieldtype AS type,
|
||||
CURRENT_TIMESTAMP AS createdAt
|
||||
FROM json_array_elements($2::json) AS field
|
||||
), inserted_fields AS(
|
||||
|
@ -13,8 +13,15 @@ DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM pg_type WHERE typname = 'entitytype') THEN
|
||||
DROP TYPE EntityType;
|
||||
END IF;
|
||||
END $$;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM pg_type WHERE typname = 'fieldtype') THEN
|
||||
DROP TYPE FieldType;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DROP TABLE IF EXISTS steps;
|
||||
DROP TABLE IF EXISTS pipelines;
|
||||
|
@ -42,7 +42,6 @@ CREATE TABLE IF NOT EXISTS steps (
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'entitytype') THEN
|
||||
@ -50,6 +49,13 @@ DO $$
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'fieldtype') THEN
|
||||
CREATE TYPE FieldType AS ENUM ('text', 'numeric', 'checkbox', 'select', 'multiselect', 'date', 'url', 'textarea', 'radiobutton', 'streetaddress', 'smart_address', 'birthday', 'legal_entity', 'date_time', 'price', 'category', 'items', 'tracking_data', 'linked_entity', 'chained_list', 'monetary', 'file', 'payer', 'supplier');
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fields (
|
||||
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||
AmoID INT NOT NULL, -- айдишник кастомного поля в амо
|
||||
@ -57,7 +63,7 @@ CREATE TABLE IF NOT EXISTS fields (
|
||||
AccountID INT NOT NULL, -- id аккаунта в амо связь с таблицей users AmoID неявная посредством join
|
||||
Name VARCHAR(50) NOT NULL DEFAULT '', -- название воронки в амо
|
||||
Entity EntityType NOT NULL, -- тип сущности в амо, для которой это кастомное поле
|
||||
Type VARCHAR(50) NOT NULL DEFAULT '', -- тип поля
|
||||
Type FieldType NOT NULL DEFAULT '', -- тип поля
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
31
model/amo.go
31
model/amo.go
@ -111,7 +111,7 @@ type Field struct {
|
||||
/* - тип сущности в амо, для которой это кастомное поле*/
|
||||
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"`
|
||||
Type FieldType `json:"Type"`
|
||||
/* - флаг мягкого удаления*/
|
||||
Deleted bool `json:"Deleted"`
|
||||
/* - таймштамп создания воронки в нашей системе*/
|
||||
@ -178,3 +178,32 @@ type UTM struct {
|
||||
/* - таймштамп создания тега в нашей системе*/
|
||||
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" // Поставщик (только в списке Счета-покупки)
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user