diff options
author | T <t@tjp.lol> | 2025-08-13 13:04:05 -0600 |
---|---|---|
committer | T <t@tjp.lol> | 2025-08-13 13:42:43 -0600 |
commit | 389b72e55b04ccfc02b04eb81cb8f7bb7a5c8b59 (patch) | |
tree | be3015b2c7db90cddfc85d3e77ddc76213485494 /internal/queries | |
parent | 29c6581e08d0fe98433eff218de7701b51a6861c (diff) |
history filtering
Diffstat (limited to 'internal/queries')
-rw-r--r-- | internal/queries/queries.sql.go | 89 |
1 files changed, 52 insertions, 37 deletions
diff --git a/internal/queries/queries.sql.go b/internal/queries/queries.sql.go index 0a7d134..0408942 100644 --- a/internal/queries/queries.sql.go +++ b/internal/queries/queries.sql.go @@ -377,6 +377,58 @@ func (q *Queries) GetContractor(ctx context.Context) (Contractor, error) { return i, err } +const getFilteredTimeEntries = `-- name: GetFilteredTimeEntries :many +select id, start_time, end_time, description, client_id, project_id, billable_rate from time_entry +where start_time >= ?1 + and (?2 is null or start_time <= ?2) + and (?3 is null or client_id = ?3) + and (?4 is null or project_id = ?4) +order by start_time desc +` + +type GetFilteredTimeEntriesParams struct { + StartTime time.Time + EndTime interface{} + ClientID interface{} + ProjectID interface{} +} + +func (q *Queries) GetFilteredTimeEntries(ctx context.Context, arg GetFilteredTimeEntriesParams) ([]TimeEntry, error) { + rows, err := q.db.QueryContext(ctx, getFilteredTimeEntries, + arg.StartTime, + arg.EndTime, + arg.ClientID, + arg.ProjectID, + ) + 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 getHighestInvoiceNumber = `-- name: GetHighestInvoiceNumber :one select cast(coalesce(max(number), 0) as integer) as max_number from invoice @@ -681,43 +733,6 @@ 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 -where start_time >= ?1 -order by start_time desc -` - -func (q *Queries) GetRecentTimeEntries(ctx context.Context, startTime time.Time) ([]TimeEntry, error) { - rows, err := q.db.QueryContext(ctx, getRecentTimeEntries, startTime) - 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 getTimeEntryById = `-- name: GetTimeEntryById :one select id, start_time, end_time, description, client_id, project_id, billable_rate from time_entry where id = ?1 |