diff --git a/apps/labrinth/.sqlx/query-0f8bb9a3ade9d28ee2d91e10b3d06a03bccfe57a196c62b27b5334525f32e0ca.json b/apps/labrinth/.sqlx/query-24871c7ee6d92749a6c04332258057ea712c3db9cfeb14efc79c8b44996ff1ff.json similarity index 90% rename from apps/labrinth/.sqlx/query-0f8bb9a3ade9d28ee2d91e10b3d06a03bccfe57a196c62b27b5334525f32e0ca.json rename to apps/labrinth/.sqlx/query-24871c7ee6d92749a6c04332258057ea712c3db9cfeb14efc79c8b44996ff1ff.json index befdf60dba..190acd14ee 100644 --- a/apps/labrinth/.sqlx/query-0f8bb9a3ade9d28ee2d91e10b3d06a03bccfe57a196c62b27b5334525f32e0ca.json +++ b/apps/labrinth/.sqlx/query-24871c7ee6d92749a6c04332258057ea712c3db9cfeb14efc79c8b44996ff1ff.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n\t\t\tSELECT\n\t\t\t\tpayout_periods.period,\n\t\t\t\tpayout_periods.raw_actual_aditude_revenue_usd,\n\t\t\t\tpayout_periods.revenue_adjustments AS \"revenue_adjustments: Json>\",\n\t\t\t\tactive_run.payload AS \"active_run_payload: Json\",\n\t\t\t\tactive_run.execute_at AS active_run_execute_at,\n\t\t\t\tEXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM payout_runs\n\t\t\t\t\tWHERE payout_runs.period = payout_periods.period\n\t\t\t\t\t\tAND payout_runs.status = 'succeeded'\n\t\t\t\t) AS \"has_succeeded_run!\"\n\t\t\tFROM payout_periods\n\t\t\tLEFT JOIN payout_runs active_run\n\t\t\t\tON active_run.period = payout_periods.period\n\t\t\t\tAND active_run.status IN ('scheduled', 'running')\n\t\t\tWHERE payout_periods.period = ANY($1)\n\t\t\t", + "query": "\n\t\t\tSELECT\n\t\t\t\tpayout_periods.period,\n\t\t\t\tpayout_periods.raw_actual_aditude_revenue_usd,\n\t\t\t\tpayout_periods.revenue_adjustments AS \"revenue_adjustments: Json>\",\n\t\t\t\tactive_run.payload AS \"active_run_payload: Json\",\n\t\t\t\tactive_run.execute_at AS active_run_execute_at,\n\t\t\t\tEXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM payout_runs\n\t\t\t\t\tWHERE payout_runs.period = payout_periods.period\n\t\t\t\t\t\tAND payout_runs.status = 'succeeded'\n\t\t\t\t) AS \"has_succeeded_run!\"\n\t\t\tFROM payout_periods\n\t\t\tLEFT JOIN payout_runs active_run\n\t\t\t\tON active_run.period = payout_periods.period\n\t\t\t\tAND active_run.status = 'scheduled'\n\t\t\tWHERE payout_periods.period = ANY($1)\n\t\t\t", "describe": { "columns": [ { @@ -48,5 +48,5 @@ null ] }, - "hash": "0f8bb9a3ade9d28ee2d91e10b3d06a03bccfe57a196c62b27b5334525f32e0ca" + "hash": "24871c7ee6d92749a6c04332258057ea712c3db9cfeb14efc79c8b44996ff1ff" } diff --git a/apps/labrinth/.sqlx/query-c4ebaf1d3b32250101b0f31bc6decb7d62a7e7160c6aa95cea71ff11ea43c973.json b/apps/labrinth/.sqlx/query-b513ecd0e29533aa390ec88cdfe59dfe2e5b85ee2e17744eae4e0b59ce7cb39c.json similarity index 58% rename from apps/labrinth/.sqlx/query-c4ebaf1d3b32250101b0f31bc6decb7d62a7e7160c6aa95cea71ff11ea43c973.json rename to apps/labrinth/.sqlx/query-b513ecd0e29533aa390ec88cdfe59dfe2e5b85ee2e17744eae4e0b59ce7cb39c.json index f927699567..28c24dbecd 100644 --- a/apps/labrinth/.sqlx/query-c4ebaf1d3b32250101b0f31bc6decb7d62a7e7160c6aa95cea71ff11ea43c973.json +++ b/apps/labrinth/.sqlx/query-b513ecd0e29533aa390ec88cdfe59dfe2e5b85ee2e17744eae4e0b59ce7cb39c.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE status IN ('scheduled', 'running')\n ) AS \"has_active_run!\",\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE period = $1\n AND status = 'succeeded'\n ) AS \"has_succeeded_run!\"\n ", + "query": "\n SELECT\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE status = 'scheduled'\n ) AS \"has_active_run!\",\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE period = $1\n AND status = 'succeeded'\n ) AS \"has_succeeded_run!\"\n ", "describe": { "columns": [ { @@ -24,5 +24,5 @@ null ] }, - "hash": "c4ebaf1d3b32250101b0f31bc6decb7d62a7e7160c6aa95cea71ff11ea43c973" + "hash": "b513ecd0e29533aa390ec88cdfe59dfe2e5b85ee2e17744eae4e0b59ce7cb39c" } diff --git a/apps/labrinth/migrations/20260817120000_payout-period-revenue.sql b/apps/labrinth/migrations/20260817120000_payout-period-revenue.sql index 143ff3f7aa..ad47460ce4 100644 --- a/apps/labrinth/migrations/20260817120000_payout-period-revenue.sql +++ b/apps/labrinth/migrations/20260817120000_payout-period-revenue.sql @@ -41,7 +41,7 @@ CREATE TABLE payout_runs ( CREATE UNIQUE INDEX payout_runs_active_period ON payout_runs (period) - WHERE status IN ('scheduled', 'running'); + WHERE status = 'scheduled'; CREATE UNIQUE INDEX payout_runs_succeeded_period ON payout_runs (period) diff --git a/apps/labrinth/migrations/20260821120000_payout-estimates.sql b/apps/labrinth/migrations/20260821120000_payout-estimates.sql index bc1b1a99fc..c12afdbee4 100644 --- a/apps/labrinth/migrations/20260821120000_payout-estimates.sql +++ b/apps/labrinth/migrations/20260821120000_payout-estimates.sql @@ -35,4 +35,4 @@ DROP INDEX payout_runs_active_period; CREATE UNIQUE INDEX payout_runs_single_active ON payout_runs ((TRUE)) - WHERE status IN ('scheduled', 'running'); + WHERE status = 'scheduled'; diff --git a/apps/labrinth/src/database/models/payout_period_item.rs b/apps/labrinth/src/database/models/payout_period_item.rs index b0ef6cfca3..22349c3527 100644 --- a/apps/labrinth/src/database/models/payout_period_item.rs +++ b/apps/labrinth/src/database/models/payout_period_item.rs @@ -51,7 +51,7 @@ impl DBPayoutPeriod { FROM payout_periods LEFT JOIN payout_runs active_run ON active_run.period = payout_periods.period - AND active_run.status IN ('scheduled', 'running') + AND active_run.status = 'scheduled' WHERE payout_periods.period = ANY($1) "#, periods, diff --git a/apps/labrinth/src/database/models/payout_run_item.rs b/apps/labrinth/src/database/models/payout_run_item.rs index d455ee0d31..b02e17566c 100644 --- a/apps/labrinth/src/database/models/payout_run_item.rs +++ b/apps/labrinth/src/database/models/payout_run_item.rs @@ -21,7 +21,6 @@ use crate::queue::payout_run::PayoutRunPayload; #[strum(serialize_all = "snake_case")] pub enum PayoutRunStatus { Scheduled, - Running, Cancelled, Failed, Succeeded, diff --git a/apps/labrinth/src/routes/internal/payout_runs/admin.rs b/apps/labrinth/src/routes/internal/payout_runs/admin.rs index ce0397738a..038778c67a 100644 --- a/apps/labrinth/src/routes/internal/payout_runs/admin.rs +++ b/apps/labrinth/src/routes/internal/payout_runs/admin.rs @@ -327,7 +327,7 @@ pub async fn start_run( EXISTS ( SELECT 1 FROM payout_runs - WHERE status IN ('scheduled', 'running') + WHERE status = 'scheduled' ) AS "has_active_run!", EXISTS ( SELECT 1 @@ -343,7 +343,7 @@ pub async fn start_run( .wrap_internal_err("checking payout period run status")?; if run_state.has_active_run { return Err(ApiError::Conflict(eyre::eyre!( - "another payout run is already scheduled or running", + "another payout run is already scheduled", ))); } if run_state.has_succeeded_run { @@ -419,7 +419,7 @@ pub async fn start_run( && error.constraint() == Some("payout_runs_single_active") { return Err(ApiError::Conflict(eyre::eyre!( - "another payout run is already scheduled or running", + "another payout run is already scheduled", ))); } create_run_result.wrap_internal_err("creating scheduled payout run")?; diff --git a/apps/labrinth/tests/payout_run_lineage.rs b/apps/labrinth/tests/payout_run_lineage.rs index b2df12bc22..89f9412a4e 100644 --- a/apps/labrinth/tests/payout_run_lineage.rs +++ b/apps/labrinth/tests/payout_run_lineage.rs @@ -207,7 +207,7 @@ async fn payout_run_lineage_and_active_run_constraints() { insert_run(pool, 1002, periods[1], "scheduled") .await .unwrap(); - let second_active = insert_run(pool, 1003, periods[2], "running") + let second_active = insert_run(pool, 1003, periods[2], "scheduled") .await .unwrap_err(); assert_constraint(second_active, "payout_runs_single_active");