Files
play-life/play-life-backend/migrations/000021_fitbit_task_bindings.up.sql

43 lines
2.8 KiB
MySQL
Raw Normal View History

-- =============================================
-- Удаляем старые колонки целей (goals) из fitbit_integrations
-- Теперь цели берутся из Fitbit API
-- =============================================
ALTER TABLE fitbit_integrations DROP COLUMN IF EXISTS goal_steps_min;
ALTER TABLE fitbit_integrations DROP COLUMN IF EXISTS goal_steps_max;
ALTER TABLE fitbit_integrations DROP COLUMN IF EXISTS goal_floors_min;
ALTER TABLE fitbit_integrations DROP COLUMN IF EXISTS goal_floors_max;
ALTER TABLE fitbit_integrations DROP COLUMN IF EXISTS goal_azm_min;
ALTER TABLE fitbit_integrations DROP COLUMN IF EXISTS goal_azm_max;
-- =============================================
-- Удаляем AZM колонку из fitbit_daily_stats
-- =============================================
ALTER TABLE fitbit_daily_stats DROP COLUMN IF EXISTS active_zone_minutes;
-- =============================================
-- Добавляем колонки для кэширования целей из Fitbit API
-- =============================================
ALTER TABLE fitbit_daily_stats ADD COLUMN goal_steps INTEGER;
ALTER TABLE fitbit_daily_stats ADD COLUMN goal_floors INTEGER;
-- =============================================
-- Добавляем привязки к задачам для записи прогресса
-- steps_task_id - задача куда записывать шаги как progression_value
-- floors_task_id - задача куда записывать этажи как progression_value
-- =============================================
ALTER TABLE fitbit_integrations ADD COLUMN steps_task_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL;
ALTER TABLE fitbit_integrations ADD COLUMN floors_task_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL;
-- =============================================
-- Добавляем привязки для целей (goals)
-- Для каждой цели храним И задачу И подзадачу
-- steps_goal_task_id - родительская задача для цели шагов
-- steps_goal_subtask_id - подзадача внутри неё, которая будет checked/unchecked
-- floors_goal_task_id - родительская задача для цели этажей
-- floors_goal_subtask_id - подзадача внутри неё
-- =============================================
ALTER TABLE fitbit_integrations ADD COLUMN steps_goal_task_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL;
ALTER TABLE fitbit_integrations ADD COLUMN steps_goal_subtask_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL;
ALTER TABLE fitbit_integrations ADD COLUMN floors_goal_task_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL;
ALTER TABLE fitbit_integrations ADD COLUMN floors_goal_subtask_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL;