// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.28.0
// source: time_entry.sql
package database
import (
"context"
"database/sql"
"time"
)
const enterTimeEntry = `-- name: EnterTimeEntry :one
INSERT INTO time_entries (task_id, start_at, end_at) VALUES (?, ?, ?)
RETURNING id, start_at, end_at, task_id, created_at, updated_at, deleted_at
`
type EnterTimeEntryParams struct {
TaskID int64
StartAt time.Time
EndAt sql.NullTime
}
func (q *Queries) EnterTimeEntry(ctx context.Context, arg EnterTimeEntryParams) (TimeEntry, error) {
row := q.db.QueryRowContext(ctx, enterTimeEntry, arg.TaskID, arg.StartAt, arg.EndAt)
var i TimeEntry
err := row.Scan(
&i.ID,
&i.StartAt,
&i.EndAt,
&i.TaskID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return i, err
}
const getRunningTimer = `-- name: GetRunningTimer :one
SELECT start_at, task_id FROM time_entries WHERE end_at IS NULL
`
type GetRunningTimerRow struct {
StartAt time.Time
TaskID int64
}
func (q *Queries) GetRunningTimer(ctx context.Context) (GetRunningTimerRow, error) {
row := q.db.QueryRowContext(ctx, getRunningTimer)
var i GetRunningTimerRow
err := row.Scan(&i.StartAt, &i.TaskID)
return i, err
}
const listTimeEntries = `-- name: ListTimeEntries :many
SELECT start_at, end_at, task_id FROM time_entries WHERE ? BETWEEN start_at AND due_at
`
type ListTimeEntriesRow struct {
StartAt time.Time
EndAt sql.NullTime
TaskID int64
}
func (q *Queries) ListTimeEntries(ctx context.Context) ([]ListTimeEntriesRow, error) {
rows, err := q.db.QueryContext(ctx, listTimeEntries)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListTimeEntriesRow
for rows.Next() {
var i ListTimeEntriesRow
if err := rows.Scan(&i.StartAt, &i.EndAt, &i.TaskID); 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 startTimeTracking = `-- name: StartTimeTracking :one
INSERT INTO time_entries (task_id, start_at) VALUES (?, ?)
RETURNING id, start_at, end_at, task_id, created_at, updated_at, deleted_at
`
type StartTimeTrackingParams struct {
TaskID int64
StartAt time.Time
}
func (q *Queries) StartTimeTracking(ctx context.Context, arg StartTimeTrackingParams) (TimeEntry, error) {
row := q.db.QueryRowContext(ctx, startTimeTracking, arg.TaskID, arg.StartAt)
var i TimeEntry
err := row.Scan(
&i.ID,
&i.StartAt,
&i.EndAt,
&i.TaskID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return i, err
}
const stopTimeTracking = `-- name: StopTimeTracking :exec
UPDATE time_entries SET end_at = ? WHERE end_at IS NULL
`
func (q *Queries) StopTimeTracking(ctx context.Context, endAt sql.NullTime) error {
_, err := q.db.ExecContext(ctx, stopTimeTracking, endAt)
return err
}
const timeByTask = `-- name: TimeByTask :many
SELECT start_at, end_at FROM time_entries WHERE task_id = ?
`
type TimeByTaskRow struct {
StartAt time.Time
EndAt sql.NullTime
}
func (q *Queries) TimeByTask(ctx context.Context, taskID int64) ([]TimeByTaskRow, error) {
rows, err := q.db.QueryContext(ctx, timeByTask, taskID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []TimeByTaskRow
for rows.Next() {
var i TimeByTaskRow
if err := rows.Scan(&i.StartAt, &i.EndAt); 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 updateTimeEntry = `-- name: UpdateTimeEntry :one
UPDATE time_entries SET task_id = ?, start_at = ?, end_at = ? WHERE id = ?
RETURNING id, start_at, end_at, task_id, created_at, updated_at, deleted_at
`
type UpdateTimeEntryParams struct {
TaskID int64
StartAt time.Time
EndAt sql.NullTime
ID int64
}
func (q *Queries) UpdateTimeEntry(ctx context.Context, arg UpdateTimeEntryParams) (TimeEntry, error) {
row := q.db.QueryRowContext(ctx, updateTimeEntry,
arg.TaskID,
arg.StartAt,
arg.EndAt,
arg.ID,
)
var i TimeEntry
err := row.Scan(
&i.ID,
&i.StartAt,
&i.EndAt,
&i.TaskID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return i, err
}