vlang TG bot migrations imtegrations
This commit is contained in:
parent
aab9f7ed33
commit
f6665ff212
@ -1,3 +1,4 @@
|
|||||||
== v0.0.0
|
== v0.0.0
|
||||||
|
|
||||||
|
- ветка vlangTG - создание миграций для добавления таблицы интеграции и с ботом для телеги и таблицы текущего статуса прохождения опроса через телегабот. и всякие энамы вокруг этого
|
||||||
- ветка chMigrate: миграция сложных запросов на LTV для промокода и мини партнёрки для перехода по quizLogo из сложных походов по внутренней сети на получение данных из clickhouse
|
- ветка chMigrate: миграция сложных запросов на LTV для промокода и мини партнёрки для перехода по quizLogo из сложных походов по внутренней сети на получение данных из clickhouse
|
||||||
|
@ -1 +1,19 @@
|
|||||||
|
DROP TABLE IF EXISTS telegram_integration;
|
||||||
|
DROP TABLE IF EXISTS respondent_state;
|
||||||
|
DROP TABLE IF EXISTS telegram_integration_instance;
|
||||||
|
drop table if exists telegram_user_quiz_result;
|
||||||
DROP INDEX results_for_quiz;
|
DROP INDEX results_for_quiz;
|
||||||
|
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1 FROM pg_type WHERE typname = 'bot_status') THEN
|
||||||
|
DROP TYPE bot_status;
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1 FROM pg_type WHERE typname = 'user_result_tg_status') THEN
|
||||||
|
DROP TYPE user_result_tg_status;
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
@ -1 +1,57 @@
|
|||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'bot_status') THEN
|
||||||
|
CREATE TYPE bot_status AS ENUM ('active','stopped', 'banned');
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'user_result_tg_status') THEN
|
||||||
|
CREATE TYPE user_result_tg_status AS ENUM ('in_progress','completed');
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS results_for_quiz ON answer(quiz_id, result);
|
CREATE INDEX IF NOT EXISTS results_for_quiz ON answer(quiz_id, result);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS telegram_integration(
|
||||||
|
id bigserial unique not null primary key,
|
||||||
|
accountid varchar(30) NOT NULL, -- связь с аккаунтом квиза
|
||||||
|
quizID integer NOT NULL , -- айдишник квиза, с которым связываем интеграцию
|
||||||
|
bot_token text NOT NULL, -- токен бота
|
||||||
|
bot_name text NOT NULL DEFAULT '', -- имя бота
|
||||||
|
repeatable boolean DEFAULT false, -- флаг возможности повторить опрос
|
||||||
|
deleted boolean NOT NULL default false, -- флаг удаленного
|
||||||
|
status bot_status NOT NULL DEFAULT 'active',
|
||||||
|
instance_id integer NOT NULL default 0
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS respondent_state(
|
||||||
|
id bigserial unique not null primary key,
|
||||||
|
telegram_id integer NOT NULL, -- айдишник пользователя в телеграме, скорее всего чат id
|
||||||
|
quizID integer NOT NULL, -- айдишник квиза, который проходится этим респондентом
|
||||||
|
state bigint NOT NULL,
|
||||||
|
lang text NOT NULL default '', -- язык опрашиваемого
|
||||||
|
contact text NOT NULL default '', -- ник пользователя в телеге, если доступен
|
||||||
|
finish boolean not null default false, -- статус, пройден опрос или нет
|
||||||
|
session varchar(20) -- сессия пользователя
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS telegram_integration_instance(
|
||||||
|
id bigserial unique not null primary key,
|
||||||
|
checkout bigint not null , -- время "подтверждения активности". в идеале должно быть актуальным, но отличаться от всех остальных минимум на 10 секунд. т.е. если у нас есть бот с временем в 10:10:10 и бот с временем в 10:10:31, а сейчас 10:10:32, то валидные слоты это 10:10:21 и 10:10:41. но как это сделать я не знаю. как вариант, можно просто взять бот с максимальным временем и сделать ему +10. и наверное это правильныйй вариант
|
||||||
|
limited integer not null, --константа с лимитом ботов
|
||||||
|
amount integer not null -- актуальное количество ботов
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS telegram_user_quiz_result(
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
bot_id BIGINT NOT NULL,
|
||||||
|
quiz_id BIGINT NOT NULL,
|
||||||
|
current_field TEXT,
|
||||||
|
user_answer TEXT DEFAULT '',
|
||||||
|
state user_result_tg_status not null default 'in_progress',
|
||||||
|
session varchar(20) NOT NULL ,
|
||||||
|
question_id bigint NOT NULL, -- id вопроса результата
|
||||||
|
iter integer not null
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user