summaryrefslogtreecommitdiff
path: root/internal/queries
diff options
context:
space:
mode:
Diffstat (limited to 'internal/queries')
-rw-r--r--internal/queries/queries.sql.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/internal/queries/queries.sql.go b/internal/queries/queries.sql.go
index dff9659..f5cf70f 100644
--- a/internal/queries/queries.sql.go
+++ b/internal/queries/queries.sql.go
@@ -654,6 +654,43 @@ func (q *Queries) GetProjectByNameAndClient(ctx context.Context, arg GetProjectB
return i, err
}
+const getRecentTimeEntries = `-- name: GetRecentTimeEntries :many
+select id, start_time, end_time, description, client_id, project_id, billable_rate from time_entry
+order by start_time desc
+limit ?1
+`
+
+func (q *Queries) GetRecentTimeEntries(ctx context.Context, limitCount int64) ([]TimeEntry, error) {
+ rows, err := q.db.QueryContext(ctx, getRecentTimeEntries, limitCount)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []TimeEntry
+ for rows.Next() {
+ var i TimeEntry
+ if err := rows.Scan(
+ &i.ID,
+ &i.StartTime,
+ &i.EndTime,
+ &i.Description,
+ &i.ClientID,
+ &i.ProjectID,
+ &i.BillableRate,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Close(); err != nil {
+ return nil, err
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
const getTimesheetDataByClient = `-- name: GetTimesheetDataByClient :many
select
te.id as time_entry_id,
@@ -823,6 +860,27 @@ func (q *Queries) GetTimesheetDataByProject(ctx context.Context, arg GetTimeshee
return items, nil
}
+const getTodaySummary = `-- name: GetTodaySummary :one
+select
+ cast(sum(
+ case
+ when te.end_time is null then
+ (julianday('now', 'utc') - julianday(te.start_time)) * 24 * 60 * 60
+ else
+ (julianday(te.end_time) - julianday(te.start_time)) * 24 * 60 * 60
+ end
+ ) as integer) as total_seconds
+from time_entry te
+where date(te.start_time) = date('now')
+`
+
+func (q *Queries) GetTodaySummary(ctx context.Context) (int64, error) {
+ row := q.db.QueryRowContext(ctx, getTodaySummary)
+ var total_seconds int64
+ err := row.Scan(&total_seconds)
+ return total_seconds, err
+}
+
const getWeekSummaryByProject = `-- name: GetWeekSummaryByProject :many
select
p.id as project_id,
@@ -990,6 +1048,23 @@ func (q *Queries) StopTimeEntry(ctx context.Context) (TimeEntry, error) {
return i, err
}
+const updateActiveTimerDescription = `-- name: UpdateActiveTimerDescription :exec
+update time_entry
+set description = ?1
+where id = (
+ select id
+ from time_entry
+ where end_time is null
+ order by start_time desc
+ limit 1
+)
+`
+
+func (q *Queries) UpdateActiveTimerDescription(ctx context.Context, description sql.NullString) error {
+ _, err := q.db.ExecContext(ctx, updateActiveTimerDescription, description)
+ return err
+}
+
const updateClient = `-- name: UpdateClient :one
update client
set name = ?1, email = ?2, billable_rate = ?3