schedule payout runs

This commit is contained in:
aecsocket
2026-08-19 17:37:25 +09:00
parent 311d603168
commit 2f9956f507
12 changed files with 482 additions and 29 deletions
@@ -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.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 IN ('scheduled', 'running')\n\t\t\t\t) AS \"has_active_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",
"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": [
{
@@ -20,11 +20,16 @@
},
{
"ordinal": 3,
"name": "has_active_run!",
"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"
}
@@ -39,8 +44,9 @@
false,
false,
null,
null,
null
]
},
"hash": "90237a2f470766b030df7bb9642f2b1876f262e5c9e165f9f1256aaa58850a0c"
"hash": "066e14c739f3467fbeef939879074a4816912b069894c4b06972300f19ebd191"
}
@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "\n DELETE FROM payout_period_days\n WHERE period = $1\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Date"
]
},
"nullable": []
},
"hash": "364343e1f73721e33c2eaf3480a471705b60baaa598f5878bcc5a5eb048d0abc"
}
@@ -0,0 +1,28 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE period = $1\n AND 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 ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "has_active_run!",
"type_info": "Bool"
},
{
"ordinal": 1,
"name": "has_succeeded_run!",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"Date"
]
},
"nullable": [
null,
null
]
},
"hash": "63e02c2f770542021a83afbf919d20d7cc5458d00d9067ae8af932434d1c1ad6"
}
@@ -0,0 +1,22 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT totp_secret\n FROM users\n WHERE id = $1\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "totp_secret",
"type_info": "Varchar"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
true
]
},
"hash": "85d855e515bba733ac8c2a7369da703b762a2622b37af05fe8afb74c5052d59e"
}
@@ -0,0 +1,17 @@
{
"db_name": "PostgreSQL",
"query": "\n INSERT INTO payout_period_days (\n period,\n date,\n raw_estimated_aditude_revenue_usd,\n aditude_impressions\n )\n VALUES ($1, $2, $3, $4)\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Date",
"Date",
"Numeric",
"Int8"
]
},
"nullable": []
},
"hash": "9a40aa709d370075823de2f37fefddb654be5145c7054c8d85602fdabac737e2"
}
@@ -0,0 +1,26 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n NOW() AS \"started_at!\",\n NOW() + INTERVAL '2 minutes' AS \"execute_at!\"\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "started_at!",
"type_info": "Timestamptz"
},
{
"ordinal": 1,
"name": "execute_at!",
"type_info": "Timestamptz"
}
],
"parameters": {
"Left": []
},
"nullable": [
null,
null
]
},
"hash": "b22226128dbe12c7c4144928409480eb891bd6b793bf3b21691746f8eb5de113"
}
@@ -0,0 +1,16 @@
{
"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"
}
@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "\n UPDATE payout_runs\n SET\n status = 'cancelled',\n cancelled_at = NOW(),\n cancelled_by = $1\n WHERE status = 'scheduled'\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": []
},
"hash": "fc9f0a0ba7c6d28c51d72127e215a3a90918001d9184e403ffa0df66414f8378"
}