diff --git a/VERSION b/VERSION index 4d54dad..c4e41f9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.2 +4.0.3 diff --git a/play-life-backend/main.go b/play-life-backend/main.go index fc51acf..2447408 100644 --- a/play-life-backend/main.go +++ b/play-life-backend/main.go @@ -4345,7 +4345,8 @@ func (a *App) setupWeeklyGoals() error { min_goal_score, max_goal_score, max_score, - priority + priority, + user_id ) SELECT p.id, @@ -4367,7 +4368,8 @@ func (a *App) setupWeeklyGoals() error { WHEN p.priority = 2 THEN gm.median_score * 1.3 ELSE gm.median_score * 1.2 END AS max_score, - p.priority + p.priority, + p.user_id FROM projects p CROSS JOIN current_info ci LEFT JOIN goal_metrics gm ON p.id = gm.project_id @@ -4376,7 +4378,8 @@ func (a *App) setupWeeklyGoals() error { SET min_goal_score = EXCLUDED.min_goal_score, max_goal_score = EXCLUDED.max_goal_score, - priority = EXCLUDED.priority + priority = EXCLUDED.priority, + user_id = EXCLUDED.user_id ` _, err := a.DB.Exec(setupQuery) @@ -5090,10 +5093,13 @@ func (a *App) moveProjectHandler(w http.ResponseWriter, r *http.Request) { } // Теперь обновляем оставшиеся записи (те, которые не конфликтуют) + // Обновляем project_id и user_id из целевого проекта _, err = tx.Exec(` - UPDATE weekly_goals - SET project_id = $1 - WHERE project_id = $2 + UPDATE weekly_goals wg + SET project_id = $1, user_id = p.user_id + FROM projects p + WHERE wg.project_id = $2 + AND p.id = $1 `, finalProjectID, req.ID) if err != nil { log.Printf("Error updating weekly_goals: %v", err) diff --git a/play-life-backend/migrations/000002_fix_weekly_goals_user_id.down.sql b/play-life-backend/migrations/000002_fix_weekly_goals_user_id.down.sql new file mode 100644 index 0000000..b0f4783 --- /dev/null +++ b/play-life-backend/migrations/000002_fix_weekly_goals_user_id.down.sql @@ -0,0 +1,4 @@ +-- Rollback migration: This migration cannot be automatically rolled back +-- The user_id values were corrected from projects.user_id, so reverting would +-- require knowing the original incorrect values, which is not possible. +-- If rollback is needed, you would need to manually restore from a backup. diff --git a/play-life-backend/migrations/000002_fix_weekly_goals_user_id.up.sql b/play-life-backend/migrations/000002_fix_weekly_goals_user_id.up.sql new file mode 100644 index 0000000..5c450aa --- /dev/null +++ b/play-life-backend/migrations/000002_fix_weekly_goals_user_id.up.sql @@ -0,0 +1,9 @@ +-- Migration: Fix weekly_goals.user_id by updating it from projects.user_id +-- This migration fixes the issue where weekly_goals.user_id was incorrectly set to NULL or wrong user_id +-- It updates all weekly_goals records to have the correct user_id from their associated project + +UPDATE weekly_goals wg +SET user_id = p.user_id +FROM projects p +WHERE wg.project_id = p.id + AND (wg.user_id IS NULL OR wg.user_id != p.user_id); diff --git a/play-life-web/package.json b/play-life-web/package.json index aaef32e..83bc5da 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "4.0.2", + "version": "4.0.3", "type": "module", "scripts": { "dev": "vite",