From 452e2e72b5a721390b57eacf6fd464c3d3f676fa Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 26 Mar 2026 02:35:21 -0400 Subject: [PATCH] add create/update times too --- ...88d56334757bb3d03eda2eb64df3ba2a0144.json} | 30 ++++++++++++++++--- .../moderation/jobs/user/list_user_jobs.rs | 3 ++ .../web/list_user_jobs_for_moderation.rs | 7 ++++- .../jobs/user/list_user_jobs_handler.rs | 2 ++ 4 files changed, 37 insertions(+), 5 deletions(-) rename .sqlx/{query-e33b7adf5854195981cc6af85ffa0257483170f6402d0277a5470699ab3c6b2c.json => query-cbdaa45597de14d1eb6dc0f6a95788d56334757bb3d03eda2eb64df3ba2a0144.json} (80%) diff --git a/.sqlx/query-e33b7adf5854195981cc6af85ffa0257483170f6402d0277a5470699ab3c6b2c.json b/.sqlx/query-cbdaa45597de14d1eb6dc0f6a95788d56334757bb3d03eda2eb64df3ba2a0144.json similarity index 80% rename from .sqlx/query-e33b7adf5854195981cc6af85ffa0257483170f6402d0277a5470699ab3c6b2c.json rename to .sqlx/query-cbdaa45597de14d1eb6dc0f6a95788d56334757bb3d03eda2eb64df3ba2a0144.json index 623ddf286b..6eb0c878f6 100644 --- a/.sqlx/query-e33b7adf5854195981cc6af85ffa0257483170f6402d0277a5470699ab3c6b2c.json +++ b/.sqlx/query-cbdaa45597de14d1eb6dc0f6a95788d56334757bb3d03eda2eb64df3ba2a0144.json @@ -1,6 +1,6 @@ { "db_name": "MySQL", - "query": "\nSELECT\n j.status as `job_status: enums::common::job_status_plus::JobStatusPlus`,\n j.failure_reason as job_failure_reason,\n wle.credits_delta,\n wle.maybe_linked_refund_ledger_token as `maybe_linked_refund_ledger_token: tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken`,\n j.on_success_result_entity_token as `on_success_result_media_token: tokens::tokens::media_files::MediaFileToken`,\n j.token as `job_token: tokens::tokens::generic_inference_jobs::InferenceJobToken`,\n wle.token as `wallet_ledger_entry_token: tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken`,\n wle.entry_type as `wallet_ledger_entry_type: enums::by_table::wallet_ledger_entries::wallet_ledger_entry_type::WalletLedgerEntryType`,\n j.maybe_external_third_party as `maybe_external_third_party: enums::by_table::generic_inference_jobs::inference_job_external_third_party::InferenceJobExternalThirdParty`,\n j.maybe_external_third_party_id\nFROM generic_inference_jobs as j\nLEFT OUTER JOIN users as u\n ON j.maybe_creator_user_token = u.token\nLEFT OUTER JOIN wallet_ledger_entries as wle\n ON wle.maybe_entity_ref = j.token\nWHERE u.token = ?\nORDER BY j.id DESC\n ", + "query": "\nSELECT\n j.status as `job_status: enums::common::job_status_plus::JobStatusPlus`,\n j.failure_reason as job_failure_reason,\n wle.credits_delta,\n wle.maybe_linked_refund_ledger_token as `maybe_linked_refund_ledger_token: tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken`,\n j.on_success_result_entity_token as `on_success_result_media_token: tokens::tokens::media_files::MediaFileToken`,\n j.token as `job_token: tokens::tokens::generic_inference_jobs::InferenceJobToken`,\n wle.token as `wallet_ledger_entry_token: tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken`,\n wle.entry_type as `wallet_ledger_entry_type: enums::by_table::wallet_ledger_entries::wallet_ledger_entry_type::WalletLedgerEntryType`,\n j.maybe_external_third_party as `maybe_external_third_party: enums::by_table::generic_inference_jobs::inference_job_external_third_party::InferenceJobExternalThirdParty`,\n j.maybe_external_third_party_id,\n j.created_at,\n j.updated_at\nFROM generic_inference_jobs as j\nLEFT OUTER JOIN users as u\n ON j.maybe_creator_user_token = u.token\nLEFT OUTER JOIN wallet_ledger_entries as wle\n ON wle.maybe_entity_ref = j.token\nWHERE u.token = ?\nORDER BY j.id DESC\n ", "describe": { "columns": [ { @@ -88,7 +88,7 @@ "name": "maybe_external_third_party: enums::by_table::generic_inference_jobs::inference_job_external_third_party::InferenceJobExternalThirdParty", "type_info": { "type": "VarString", - "flags": "BINARY", + "flags": "MULTIPLE_KEY | BINARY", "char_set": 224, "max_size": 64 } @@ -102,6 +102,26 @@ "char_set": 224, "max_size": 256 } + }, + { + "ordinal": 10, + "name": "created_at", + "type_info": { + "type": "Timestamp", + "flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP", + "char_set": 63, + "max_size": 19 + } + }, + { + "ordinal": 11, + "name": "updated_at", + "type_info": { + "type": "Timestamp", + "flags": "NOT_NULL | BINARY | TIMESTAMP | ON_UPDATE_NOW", + "char_set": 63, + "max_size": 19 + } } ], "parameters": { @@ -117,8 +137,10 @@ true, true, true, - true + true, + false, + false ] }, - "hash": "e33b7adf5854195981cc6af85ffa0257483170f6402d0277a5470699ab3c6b2c" + "hash": "cbdaa45597de14d1eb6dc0f6a95788d56334757bb3d03eda2eb64df3ba2a0144" } diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/moderation/jobs/user/list_user_jobs.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/moderation/jobs/user/list_user_jobs.rs index 2193c2efad..9e78ff46bb 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/moderation/jobs/user/list_user_jobs.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/moderation/jobs/user/list_user_jobs.rs @@ -1,3 +1,4 @@ +use chrono::{DateTime, Utc}; use enums::by_table::generic_inference_jobs::inference_job_external_third_party::InferenceJobExternalThirdParty; use enums::by_table::wallet_ledger_entries::wallet_ledger_entry_type::WalletLedgerEntryType; use enums::common::job_status_plus::JobStatusPlus; @@ -33,4 +34,6 @@ pub struct ListUserJobsEntry { pub wallet_ledger_entry_type: Option, pub maybe_external_third_party: Option, pub maybe_external_third_party_id: Option, + pub created_at: DateTime, + pub updated_at: DateTime, } diff --git a/crates/schema/database/mysql_queries/src/queries/generic_inference/web/list_user_jobs_for_moderation.rs b/crates/schema/database/mysql_queries/src/queries/generic_inference/web/list_user_jobs_for_moderation.rs index 5a40f1a7c4..b65d4930fd 100644 --- a/crates/schema/database/mysql_queries/src/queries/generic_inference/web/list_user_jobs_for_moderation.rs +++ b/crates/schema/database/mysql_queries/src/queries/generic_inference/web/list_user_jobs_for_moderation.rs @@ -1,4 +1,5 @@ use anyhow::anyhow; +use chrono::{DateTime, Utc}; use log::warn; use sqlx::MySqlPool; @@ -22,6 +23,8 @@ pub struct UserJobForModerationResult { pub wallet_ledger_entry_type: Option, pub maybe_external_third_party: Option, pub maybe_external_third_party_id: Option, + pub created_at: DateTime, + pub updated_at: DateTime, } pub async fn list_user_jobs_for_moderation( @@ -41,7 +44,9 @@ SELECT wle.token as `wallet_ledger_entry_token: tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken`, wle.entry_type as `wallet_ledger_entry_type: enums::by_table::wallet_ledger_entries::wallet_ledger_entry_type::WalletLedgerEntryType`, j.maybe_external_third_party as `maybe_external_third_party: enums::by_table::generic_inference_jobs::inference_job_external_third_party::InferenceJobExternalThirdParty`, - j.maybe_external_third_party_id + j.maybe_external_third_party_id, + j.created_at, + j.updated_at FROM generic_inference_jobs as j LEFT OUTER JOIN users as u ON j.maybe_creator_user_token = u.token diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs index 2ec6505b0b..a53a9d35ab 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/moderation/jobs/user/list_user_jobs_handler.rs @@ -58,6 +58,8 @@ pub async fn list_user_jobs_handler( wallet_ledger_entry_type: row.wallet_ledger_entry_type, maybe_external_third_party: row.maybe_external_third_party, maybe_external_third_party_id: row.maybe_external_third_party_id, + created_at: row.created_at, + updated_at: row.updated_at, }).collect(); Ok(Json(ListUserJobsResponse {