diff --git a/prisma/migrations/20240829205238_autowithdraw_check_enabled/migration.sql b/prisma/migrations/20240829205238_autowithdraw_check_enabled/migration.sql new file mode 100644 index 00000000..97760da2 --- /dev/null +++ b/prisma/migrations/20240829205238_autowithdraw_check_enabled/migration.sql @@ -0,0 +1,23 @@ +CREATE OR REPLACE FUNCTION user_auto_withdraw() RETURNS TRIGGER AS $$ +DECLARE +BEGIN + INSERT INTO pgboss.job (name, data) + SELECT 'autoWithdraw', jsonb_build_object('id', NEW.id) + -- only if there isn't already a pending job for this user + WHERE NOT EXISTS ( + SELECT * + FROM pgboss.job + WHERE name = 'autoWithdraw' + AND data->>'id' = NEW.id::TEXT + AND state = 'created' + ) + -- and they have an attached wallet (currently all are received only) + AND EXISTS ( + SELECT * + FROM "Wallet" + WHERE "userId" = NEW.id + AND enabled = TRUE + ); + RETURN NEW; +END; +$$ LANGUAGE plpgsql; \ No newline at end of file