From 9750f0e0003cac7783b60b45d02009b801c00fba Mon Sep 17 00:00:00 2001 From: tesaide Date: Mon, 8 Dec 2025 13:53:56 +0200 Subject: [PATCH 1/4] fix: reverse date and display bug --- live-demo/app/custom/Dashboard.vue | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/live-demo/app/custom/Dashboard.vue b/live-demo/app/custom/Dashboard.vue index 0d079994..6ac9018a 100644 --- a/live-demo/app/custom/Dashboard.vue +++ b/live-demo/app/custom/Dashboard.vue @@ -188,13 +188,17 @@ const apartsCountsByDaysChart = computed(() => { }); const listedVsUnlistedPriceByDays = computed(() => { - return data.value.listedVsUnlistedPriceByDays?.map( - (item) => ({ - x: dayjs(item.day).format('DD MMM'), - listedPrice: item.listedPrice.toFixed(2), - unlistedPrice: item.unlistedPrice.toFixed(2), - }) - ); + const arr = data.value?.listedVsUnlistedPriceByDays; + + if (!Array.isArray(arr)) return []; + + const reversed = arr.slice().reverse(); + + return reversed.map(item => ({ + x: dayjs(item.day).format('DD MMM'), + listedPrice: item.listedPrice.toFixed(2), + unlistedPrice: item.unlistedPrice.toFixed(2), + })); }); const listedVsUnlistedCountByDays = computed(() => { From 8422ff5774b032372b325ead6085763ce3e25b69 Mon Sep 17 00:00:00 2001 From: tesaide Date: Tue, 9 Dec 2025 18:19:53 +0200 Subject: [PATCH 2/4] fix: reverse date --- live-demo/app/custom/Dashboard.vue | 18 +++++++----------- live-demo/app/index.ts | 3 +++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/live-demo/app/custom/Dashboard.vue b/live-demo/app/custom/Dashboard.vue index 6ac9018a..0d079994 100644 --- a/live-demo/app/custom/Dashboard.vue +++ b/live-demo/app/custom/Dashboard.vue @@ -188,17 +188,13 @@ const apartsCountsByDaysChart = computed(() => { }); const listedVsUnlistedPriceByDays = computed(() => { - const arr = data.value?.listedVsUnlistedPriceByDays; - - if (!Array.isArray(arr)) return []; - - const reversed = arr.slice().reverse(); - - return reversed.map(item => ({ - x: dayjs(item.day).format('DD MMM'), - listedPrice: item.listedPrice.toFixed(2), - unlistedPrice: item.unlistedPrice.toFixed(2), - })); + return data.value.listedVsUnlistedPriceByDays?.map( + (item) => ({ + x: dayjs(item.day).format('DD MMM'), + listedPrice: item.listedPrice.toFixed(2), + unlistedPrice: item.unlistedPrice.toFixed(2), + }) + ); }); const listedVsUnlistedCountByDays = computed(() => { diff --git a/live-demo/app/index.ts b/live-demo/app/index.ts index 496196bf..b00cde31 100644 --- a/live-demo/app/index.ts +++ b/live-demo/app/index.ts @@ -157,6 +157,7 @@ if (import.meta.url === `file://${process.argv[1]}`) { LIMIT ?; ` ).all(days); + apartsByDays.reverse(); const totalAparts = apartsByDays.reduce((acc: number, { count }: { count:number }) => acc + count, 0); @@ -174,6 +175,7 @@ if (import.meta.url === `file://${process.argv[1]}`) { LIMIT ?; ` ).all(days); + listedVsUnlistedByDays.reverse(); const apartsCountsByRooms = await db.prepare( `SELECT @@ -214,6 +216,7 @@ if (import.meta.url === `file://${process.argv[1]}`) { LIMIT ?; ` ).all(days); + listedVsUnlistedPriceByDays.reverse(); const totalListedPrice = Math.round(listedVsUnlistedByDays.reduce(( acc: number, { listedPrice }: { listedPrice:number } From cc67916dc60e3347815589b59da932c90c397dfd Mon Sep 17 00:00:00 2001 From: tesaide Date: Wed, 10 Dec 2025 11:06:55 +0200 Subject: [PATCH 3/4] fix: SQL ASC desc --- live-demo/app/index.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/live-demo/app/index.ts b/live-demo/app/index.ts index b00cde31..a2c33360 100644 --- a/live-demo/app/index.ts +++ b/live-demo/app/index.ts @@ -148,22 +148,24 @@ if (import.meta.url === `file://${process.argv[1]}`) { const db = admin.resource('aparts').dataConnector.client; const days = req.body.days || 7; const apartsByDays = await db.prepare( - `SELECT + `SELECT * FROM ( + SELECT strftime('%Y-%m-%d', created_at) as day, COUNT(*) as count FROM apartments GROUP BY day ORDER BY day DESC - LIMIT ?; - ` + LIMIT ? + ) ORDER BY day ASC` ).all(days); - apartsByDays.reverse(); + const totalAparts = apartsByDays.reduce((acc: number, { count }: { count:number }) => acc + count, 0); // add listed, unlisted, listedPrice, unlistedPrice const listedVsUnlistedByDays = await db.prepare( - `SELECT + `SELECT * FROM ( + SELECT strftime('%Y-%m-%d', created_at) as day, SUM(listed) as listed, COUNT(*) - SUM(listed) as unlisted, @@ -172,10 +174,10 @@ if (import.meta.url === `file://${process.argv[1]}`) { FROM apartments GROUP BY day ORDER BY day DESC - LIMIT ?; - ` + LIMIT ? + ) ORDER BY day ASC` ).all(days); - listedVsUnlistedByDays.reverse(); + const apartsCountsByRooms = await db.prepare( `SELECT @@ -206,17 +208,18 @@ if (import.meta.url === `file://${process.argv[1]}`) { ).get(); const listedVsUnlistedPriceByDays = await db.prepare( - `SELECT + `SELECT * FROM ( + SELECT strftime('%Y-%m-%d', created_at) as day, SUM(listed * price) as listedPrice, SUM((1 - listed) * price) as unlistedPrice FROM apartments GROUP BY day ORDER BY day DESC - LIMIT ?; - ` + LIMIT ? + ) ORDER BY day ASC` ).all(days); - listedVsUnlistedPriceByDays.reverse(); + const totalListedPrice = Math.round(listedVsUnlistedByDays.reduce(( acc: number, { listedPrice }: { listedPrice:number } From 9c6afcd56ce59963a19246aecccf9163c1ead0f3 Mon Sep 17 00:00:00 2001 From: tesaide Date: Thu, 11 Dec 2025 15:50:26 +0200 Subject: [PATCH 4/4] fix: reverse date simply --- live-demo/app/index.ts | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/live-demo/app/index.ts b/live-demo/app/index.ts index a2c33360..191853c4 100644 --- a/live-demo/app/index.ts +++ b/live-demo/app/index.ts @@ -148,15 +148,13 @@ if (import.meta.url === `file://${process.argv[1]}`) { const db = admin.resource('aparts').dataConnector.client; const days = req.body.days || 7; const apartsByDays = await db.prepare( - `SELECT * FROM ( - SELECT + `SELECT strftime('%Y-%m-%d', created_at) as day, COUNT(*) as count FROM apartments GROUP BY day - ORDER BY day DESC - LIMIT ? - ) ORDER BY day ASC` + ORDER BY day ASC + LIMIT ?;` ).all(days); @@ -164,8 +162,7 @@ if (import.meta.url === `file://${process.argv[1]}`) { // add listed, unlisted, listedPrice, unlistedPrice const listedVsUnlistedByDays = await db.prepare( - `SELECT * FROM ( - SELECT + `SELECT strftime('%Y-%m-%d', created_at) as day, SUM(listed) as listed, COUNT(*) - SUM(listed) as unlisted, @@ -173,9 +170,8 @@ if (import.meta.url === `file://${process.argv[1]}`) { SUM((1 - listed) * price) as unlistedPrice FROM apartments GROUP BY day - ORDER BY day DESC - LIMIT ? - ) ORDER BY day ASC` + ORDER BY day ASC + LIMIT ?;` ).all(days); @@ -208,16 +204,14 @@ if (import.meta.url === `file://${process.argv[1]}`) { ).get(); const listedVsUnlistedPriceByDays = await db.prepare( - `SELECT * FROM ( - SELECT + `SELECT strftime('%Y-%m-%d', created_at) as day, SUM(listed * price) as listedPrice, SUM((1 - listed) * price) as unlistedPrice FROM apartments GROUP BY day - ORDER BY day DESC - LIMIT ? - ) ORDER BY day ASC` + ORDER BY day ASC + LIMIT ?;` ).all(days);