11use axum:: http:: HeaderMap ;
22use chrono:: { DateTime , Datelike , NaiveDate , NaiveDateTime , TimeZone , Utc } ;
33use chrono_tz:: Tz ;
4+ use diesel:: dsl:: sql;
45use diesel:: prelude:: * ;
56use diesel:: sql_types:: { BigInt , Date , Int4 , Nullable as SqlNullable , Text , Timestamptz } ;
67use ipnetwork:: IpNetwork ;
@@ -790,12 +791,11 @@ impl Heartbeat {
790791 pub fn get_daily_activity_last_week (
791792 conn : & mut PgConnection ,
792793 ) -> QueryResult < Vec < DailyActivity > > {
793- use diesel:: dsl:: * ;
794- use diesel:: sql_types:: * ;
794+ let now = chrono:: Utc :: now ( ) ;
795795
796- let seven_days_ago = chrono:: Utc :: now ( ) - chrono:: Duration :: days ( 7 ) ;
796+ let start_today = now. date_naive ( ) . and_hms_opt ( 0 , 0 , 0 ) . unwrap ( ) ;
797+ let seven_days_ago = start_today - chrono:: Duration :: days ( 7 ) ;
797798
798- // Use Diesel's select with sql() for date functions not in DSL
799799 heartbeats:: table
800800 . filter ( heartbeats:: time. ge ( seven_days_ago) )
801801 . select ( ( sql :: < Date > ( "DATE(time)" ) , sql :: < BigInt > ( "COUNT(*)" ) ) )
@@ -814,7 +814,6 @@ impl Heartbeat {
814814 conn : & mut PgConnection ,
815815 duration_input : DurationInput ,
816816 ) -> QueryResult < i64 > {
817- // Call database function using Diesel's define_sql_function!
818817 diesel:: select ( calculate_user_duration (
819818 duration_input. user_id ,
820819 duration_input. start_date ,
0 commit comments