diff --git a/.sqlx/query-e6be710a038f8fbcc979c9bd52eb42c65941003857e7004ca809d658d3005a4f.json b/.sqlx/query-5c76d9b602d0e47bc28a499c834182d77a6b993d9d526d57ae713aef2c291731.json similarity index 85% rename from .sqlx/query-e6be710a038f8fbcc979c9bd52eb42c65941003857e7004ca809d658d3005a4f.json rename to .sqlx/query-5c76d9b602d0e47bc28a499c834182d77a6b993d9d526d57ae713aef2c291731.json index 07e56c4e..35655309 100644 --- a/.sqlx/query-e6be710a038f8fbcc979c9bd52eb42c65941003857e7004ca809d658d3005a4f.json +++ b/.sqlx/query-5c76d9b602d0e47bc28a499c834182d77a6b993d9d526d57ae713aef2c291731.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n tc.creator_id AS \"id!\",\n name AS \"name!\",\n avatar_url AS \"avatar_url!\",\n ARRAY_AGG((al.link_type, al.url)) FILTER (WHERE link_type IS NOT NULL) AS \"account_links: Vec\"\n FROM af_template_creator tc\n LEFT OUTER JOIN af_template_creator_account_link al\n ON tc.creator_id = al.creator_id\n WHERE name LIKE $1\n GROUP BY (tc.creator_id, name, avatar_url)\n ", + "query": "\n SELECT\n tc.creator_id AS \"id!\",\n name AS \"name!\",\n avatar_url AS \"avatar_url!\",\n ARRAY_AGG((al.link_type, al.url)) FILTER (WHERE link_type IS NOT NULL) AS \"account_links: Vec\"\n FROM af_template_creator tc\n LEFT OUTER JOIN af_template_creator_account_link al\n ON tc.creator_id = al.creator_id\n WHERE name LIKE $1\n GROUP BY (tc.creator_id, name, avatar_url)\n ORDER BY created_at ASC\n ", "describe": { "columns": [ { @@ -36,5 +36,5 @@ null ] }, - "hash": "e6be710a038f8fbcc979c9bd52eb42c65941003857e7004ca809d658d3005a4f" + "hash": "5c76d9b602d0e47bc28a499c834182d77a6b993d9d526d57ae713aef2c291731" } diff --git a/libs/database/src/template.rs b/libs/database/src/template.rs index fb0c41e9..1d1066e9 100644 --- a/libs/database/src/template.rs +++ b/libs/database/src/template.rs @@ -118,7 +118,7 @@ pub async fn select_template_categories<'a, E: Executor<'a, Database = Postgres> query_builder.push_bind(name_contains); query_builder.push(" , '%')"); }; - query_builder.push(" ORDER BY priority DESC"); + query_builder.push(" ORDER BY priority DESC, created_at ASC"); let query = query_builder.build_query_as::(); let category_rows: Vec = query.fetch_all(executor).await?; @@ -313,6 +313,7 @@ pub async fn select_template_creators_by_name<'a, E: Executor<'a, Database = Pos ON tc.creator_id = al.creator_id WHERE name LIKE $1 GROUP BY (tc.creator_id, name, avatar_url) + ORDER BY created_at ASC "#, substr_match ) diff --git a/migrations/20240806103039_template_creator.sql b/migrations/20240806103039_template_creator.sql index 071c6583..4fcb1cbf 100644 --- a/migrations/20240806103039_template_creator.sql +++ b/migrations/20240806103039_template_creator.sql @@ -1,5 +1,7 @@ CREATE TABLE IF NOT EXISTS af_template_creator ( creator_id UUID NOT NULL DEFAULT gen_random_uuid(), + created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, name TEXT NOT NULL, avatar_url TEXT NOT NULL,