openapi, payout run start only if none are running

This commit is contained in:
aecsocket
2026-08-21 16:34:17 +09:00
parent 8f36ed5f8f
commit 20b3a42156
14 changed files with 214 additions and 137 deletions
@@ -1,52 +0,0 @@
{
"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.adjustments,\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 = 'scheduled'\n\t\t\t\t) AS \"has_scheduled_run!\",\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 = 'running'\n\t\t\t\t) AS \"has_running_run!\",\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\tWHERE payout_periods.period = ANY($1)\n\t\t\t",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "period",
"type_info": "Date"
},
{
"ordinal": 1,
"name": "raw_actual_aditude_revenue_usd",
"type_info": "Numeric"
},
{
"ordinal": 2,
"name": "adjustments",
"type_info": "Jsonb"
},
{
"ordinal": 3,
"name": "has_scheduled_run!",
"type_info": "Bool"
},
{
"ordinal": 4,
"name": "has_running_run!",
"type_info": "Bool"
},
{
"ordinal": 5,
"name": "has_succeeded_run!",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"DateArray"
]
},
"nullable": [
false,
false,
false,
null,
null,
null
]
},
"hash": "066e14c739f3467fbeef939879074a4816912b069894c4b06972300f19ebd191"
}
@@ -0,0 +1,58 @@
{
"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.adjustments AS \"adjustments: Json<Vec<Adjustment>>\",\n\t\t\t\t(\n\t\t\t\t\tSELECT payout_runs.payload\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 IN ('scheduled', 'running')\n\t\t\t\t\tLIMIT 1\n\t\t\t\t) AS \"active_run_payload: Json<PayoutRunPayload>\",\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 = 'scheduled'\n\t\t\t\t) AS \"has_scheduled_run!\",\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 = 'running'\n\t\t\t\t) AS \"has_running_run!\",\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\tWHERE payout_periods.period = ANY($1)\n\t\t\t",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "period",
"type_info": "Date"
},
{
"ordinal": 1,
"name": "raw_actual_aditude_revenue_usd",
"type_info": "Numeric"
},
{
"ordinal": 2,
"name": "adjustments: Json<Vec<Adjustment>>",
"type_info": "Jsonb"
},
{
"ordinal": 3,
"name": "active_run_payload: Json<PayoutRunPayload>",
"type_info": "Jsonb"
},
{
"ordinal": 4,
"name": "has_scheduled_run!",
"type_info": "Bool"
},
{
"ordinal": 5,
"name": "has_running_run!",
"type_info": "Bool"
},
{
"ordinal": 6,
"name": "has_succeeded_run!",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"DateArray"
]
},
"nullable": [
false,
false,
false,
null,
null,
null,
null
]
},
"hash": "1d68f3585ac26a38955abf04703e26538972770ea7454fab132da87dad747669"
}
@@ -1,24 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n\t\t\tINSERT INTO payout_runs (\n\t\t\t\tid,\n\t\t\t\tperiod,\n\t\t\t\tstatus,\n\t\t\t\tstarted_at,\n\t\t\t\tstarted_by,\n\t\t\t\texecute_at,\n\t\t\t\tprocessing_started_at,\n\t\t\t\tfinished_at,\n\t\t\t\tcancelled_at,\n\t\t\t\tcancelled_by,\n\t\t\t\terror\n\t\t\t)\n\t\t\tVALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)\n\t\t\tON CONFLICT (id) DO UPDATE SET\n\t\t\t\tperiod = EXCLUDED.period,\n\t\t\t\tstatus = EXCLUDED.status,\n\t\t\t\tstarted_at = EXCLUDED.started_at,\n\t\t\t\tstarted_by = EXCLUDED.started_by,\n\t\t\t\texecute_at = EXCLUDED.execute_at,\n\t\t\t\tprocessing_started_at = EXCLUDED.processing_started_at,\n\t\t\t\tfinished_at = EXCLUDED.finished_at,\n\t\t\t\tcancelled_at = EXCLUDED.cancelled_at,\n\t\t\t\tcancelled_by = EXCLUDED.cancelled_by,\n\t\t\t\terror = EXCLUDED.error\n\t\t\t",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Date",
"Text",
"Timestamptz",
"Int8",
"Timestamptz",
"Timestamptz",
"Timestamptz",
"Timestamptz",
"Int8",
"Jsonb"
]
},
"nullable": []
},
"hash": "3de025bb99952ac0ba5d1bbf270a42b68c675c0f38cb760c42acd1786a20c241"
}
@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "\n INSERT INTO payout_periods (\n period,\n raw_actual_aditude_revenue_usd,\n adjustments\n )\n VALUES ($1, $2, '[]'::jsonb)\n ON CONFLICT (period) DO UPDATE SET\n raw_actual_aditude_revenue_usd =\n EXCLUDED.raw_actual_aditude_revenue_usd\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Date",
"Numeric"
]
},
"nullable": []
},
"hash": "4798f2780f28c4329d96af43e4902d97972573a8f4954ceab284b8d8989641a7"
}
@@ -0,0 +1,25 @@
{
"db_name": "PostgreSQL",
"query": "\n\t\t\tINSERT INTO payout_runs (\n\t\t\t\tid,\n\t\t\t\tperiod,\n\t\t\t\tpayload,\n\t\t\t\tstatus,\n\t\t\t\tstarted_at,\n\t\t\t\tstarted_by,\n\t\t\t\texecute_at,\n\t\t\t\tprocessing_started_at,\n\t\t\t\tfinished_at,\n\t\t\t\tcancelled_at,\n\t\t\t\tcancelled_by,\n\t\t\t\terror\n\t\t\t)\n\t\t\tVALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)\n\t\t\tON CONFLICT (id) DO UPDATE SET\n\t\t\t\tperiod = EXCLUDED.period,\n\t\t\t\tpayload = EXCLUDED.payload,\n\t\t\t\tstatus = EXCLUDED.status,\n\t\t\t\tstarted_at = EXCLUDED.started_at,\n\t\t\t\tstarted_by = EXCLUDED.started_by,\n\t\t\t\texecute_at = EXCLUDED.execute_at,\n\t\t\t\tprocessing_started_at = EXCLUDED.processing_started_at,\n\t\t\t\tfinished_at = EXCLUDED.finished_at,\n\t\t\t\tcancelled_at = EXCLUDED.cancelled_at,\n\t\t\t\tcancelled_by = EXCLUDED.cancelled_by,\n\t\t\t\terror = EXCLUDED.error\n\t\t\t",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Date",
"Jsonb",
"Text",
"Timestamptz",
"Int8",
"Timestamptz",
"Timestamptz",
"Timestamptz",
"Timestamptz",
"Int8",
"Jsonb"
]
},
"nullable": []
},
"hash": "5236bdf4ab31a7a49ae274e965b7310b757083d0c7870a3e5ae11ab5eb57d1aa"
}
@@ -1,16 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n INSERT INTO payout_periods (\n period,\n raw_actual_aditude_revenue_usd,\n adjustments\n )\n VALUES ($1, $2, $3)\n ON CONFLICT (period) DO UPDATE SET\n raw_actual_aditude_revenue_usd =\n EXCLUDED.raw_actual_aditude_revenue_usd,\n adjustments = EXCLUDED.adjustments\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Date",
"Numeric",
"Jsonb"
]
},
"nullable": []
},
"hash": "df7d47467f7344cb4538ffddaf3805bc9666c9651152f6ed648434b6e2b7ee61"
}