diff --git a/src/worker/sql.rs b/src/worker/sql.rs index 334b19b..a98366d 100644 --- a/src/worker/sql.rs +++ b/src/worker/sql.rs @@ -624,7 +624,15 @@ UPDATE falukant_data.director SET last_salary_payout = NOW() WHERE id = $1; "#; pub const QUERY_UPDATE_SATISFACTION: &str = r#" -WITH salary_gap AS ( +WITH adjusted_income AS ( + UPDATE falukant_data.director d + SET income = GREATEST(0, COALESCE(d.wished_income, d.income)), + updated_at = NOW() + WHERE COALESCE(d.auto_adjust_income, false) = true + AND d.income IS DISTINCT FROM GREATEST(0, COALESCE(d.wished_income, d.income)) + RETURNING d.id, d.employer_user_id +), +salary_gap AS ( SELECT d.id, d.employer_user_id, @@ -639,6 +647,7 @@ WITH salary_gap AS ( FROM falukant_data.director d JOIN falukant_data.knowledge k ON d.director_character_id = k.character_id JOIN falukant_data.character c ON c.id = d.director_character_id + WHERE COALESCE(d.auto_adjust_income, false) = false GROUP BY d.id, d.employer_user_id, d.satisfaction, d.income, c.title_of_nobility ), new_sats AS ( @@ -662,7 +671,10 @@ UPDATE falukant_data.director dir FROM new_sats ns WHERE dir.id = ns.id AND dir.satisfaction IS DISTINCT FROM ns.new_satisfaction -RETURNING dir.employer_user_id; +RETURNING dir.employer_user_id +UNION +SELECT ai.employer_user_id + FROM adjusted_income ai; "#; pub const QUERY_GET_DIRECTOR_USER: &str = r#"