diff options
Diffstat (limited to 'internal/queries')
-rw-r--r-- | internal/queries/queries.sql.go | 75 |
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 |