// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.27.0 // source: document.sql package repository import ( "context" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" ) const addDocumentEntry = `-- name: AddDocumentEntry :exec INSERT INTO documentEntries (documentId, bucket, key) VALUES ($1, $2, $3) ` type AddDocumentEntryParams struct { Documentid uuid.UUID `db:"documentid"` Bucket string `db:"bucket"` Key string `db:"key"` } // AddDocumentEntry // // INSERT INTO documentEntries (documentId, bucket, key) VALUES ($1, $2, $3) func (q *Queries) AddDocumentEntry(ctx context.Context, arg *AddDocumentEntryParams) error { _, err := q.db.Exec(ctx, addDocumentEntry, arg.Documentid, arg.Bucket, arg.Key) return err } const addDocumentUpload = `-- name: AddDocumentUpload :exec INSERT INTO documentUploads (id, clientId, bucket, key, part, createdAt) VALUES ($1, $2, $3, $4, $5, $6) ` type AddDocumentUploadParams struct { ID uuid.UUID `db:"id"` Clientid string `db:"clientid"` Bucket string `db:"bucket"` Key string `db:"key"` Part uint16 `db:"part"` Createdat pgtype.Timestamp `db:"createdat"` } // AddDocumentUpload // // INSERT INTO documentUploads (id, clientId, bucket, key, part, createdAt) VALUES ($1, $2, $3, $4, $5, $6) func (q *Queries) AddDocumentUpload(ctx context.Context, arg *AddDocumentUploadParams) error { _, err := q.db.Exec(ctx, addDocumentUpload, arg.ID, arg.Clientid, arg.Bucket, arg.Key, arg.Part, arg.Createdat, ) return err } const createDocument = `-- name: CreateDocument :one INSERT INTO documents (clientId, hash) VALUES ($1, $2) RETURNING id ` type CreateDocumentParams struct { Clientid string `db:"clientid"` Hash string `db:"hash"` } // CreateDocument // // INSERT INTO documents (clientId, hash) VALUES ($1, $2) RETURNING id func (q *Queries) CreateDocument(ctx context.Context, arg *CreateDocumentParams) (uuid.UUID, error) { row := q.db.QueryRow(ctx, createDocument, arg.Clientid, arg.Hash) var id uuid.UUID err := row.Scan(&id) return id, err } const getDocumentEntry = `-- name: GetDocumentEntry :one SELECT documentId, bucket, key FROM documentEntries WHERE documentId = $1 ORDER BY id DESC LIMIT 1 ` type GetDocumentEntryRow struct { Documentid uuid.UUID `db:"documentid"` Bucket string `db:"bucket"` Key string `db:"key"` } // GetDocumentEntry // // SELECT documentId, bucket, key FROM documentEntries WHERE documentId = $1 ORDER BY id DESC LIMIT 1 func (q *Queries) GetDocumentEntry(ctx context.Context, documentid uuid.UUID) (*GetDocumentEntryRow, error) { row := q.db.QueryRow(ctx, getDocumentEntry, documentid) var i GetDocumentEntryRow err := row.Scan(&i.Documentid, &i.Bucket, &i.Key) return &i, err } const getDocumentExternal = `-- name: GetDocumentExternal :one WITH docs AS ( SELECT id, hash, clientId FROM documents WHERE id = $1 ), namedResults AS ( SELECT q.name, dd.id, d.value FROM currentCollectorQueries AS q JOIN docs as dd on dd.clientId = q.clientId LEFT JOIN listValidDocumentResults($1) AS d ON d.queryId = q.queryId and q.name is not null ) SELECT d.id, d.clientId, d.hash, COALESCE(jsonb_object_agg(r.name, r.value) FILTER (WHERE r.name IS NOT NULL), '{}') AS fields FROM docs AS d LEFT JOIN namedResults AS r ON d.id = r.id GROUP BY d.id, d.clientId, d.hash ` type GetDocumentExternalRow struct { ID uuid.UUID `db:"id"` Clientid string `db:"clientid"` Hash string `db:"hash"` Fields []byte `db:"fields"` } // GetDocumentExternal // // WITH // docs AS ( // SELECT id, hash, clientId // FROM documents // WHERE id = $1 // ), // namedResults AS ( // SELECT // q.name, // dd.id, // d.value // FROM currentCollectorQueries AS q // JOIN docs as dd on dd.clientId = q.clientId // LEFT JOIN listValidDocumentResults($1) AS d // ON d.queryId = q.queryId and q.name is not null // ) // SELECT // d.id, // d.clientId, // d.hash, // COALESCE(jsonb_object_agg(r.name, r.value) FILTER (WHERE r.name IS NOT NULL), '{}') AS fields // FROM docs AS d // LEFT JOIN namedResults AS r ON d.id = r.id // GROUP BY d.id, d.clientId, d.hash func (q *Queries) GetDocumentExternal(ctx context.Context, documentid uuid.UUID) (*GetDocumentExternalRow, error) { row := q.db.QueryRow(ctx, getDocumentExternal, documentid) var i GetDocumentExternalRow err := row.Scan( &i.ID, &i.Clientid, &i.Hash, &i.Fields, ) return &i, err } const getDocumentIDByHash = `-- name: GetDocumentIDByHash :one SELECT id FROM documents WHERE hash = $1 and clientId = $2 ` type GetDocumentIDByHashParams struct { Hash string `db:"hash"` Clientid string `db:"clientid"` } // GetDocumentIDByHash // // SELECT id FROM documents WHERE hash = $1 and clientId = $2 func (q *Queries) GetDocumentIDByHash(ctx context.Context, arg *GetDocumentIDByHashParams) (uuid.UUID, error) { row := q.db.QueryRow(ctx, getDocumentIDByHash, arg.Hash, arg.Clientid) var id uuid.UUID err := row.Scan(&id) return id, err } const getDocumentSummary = `-- name: GetDocumentSummary :one SELECT id, clientId, hash FROM documents WHERE id = $1 ` // GetDocumentSummary // // SELECT id, clientId, hash FROM documents WHERE id = $1 func (q *Queries) GetDocumentSummary(ctx context.Context, id uuid.UUID) (*Document, error) { row := q.db.QueryRow(ctx, getDocumentSummary, id) var i Document err := row.Scan(&i.ID, &i.Clientid, &i.Hash) return &i, err } const getDocumentUploadCurrentPart = `-- name: GetDocumentUploadCurrentPart :one WITH client as ( select clientId from clients where clientId = $1 ), parts as ( SELECT docs.part FROM client as c JOIN documentUploads as docs on docs.clientId = c.clientId WHERE date(docs.createdAt) = date($2) ), max_part as ( SELECT COALESCE(max(part), 0) as max_part_num FROM parts ) SELECT COALESCE(p.part, 0)::unsignedsmallint as part, COUNT(p.part) as count FROM parts p RIGHT JOIN max_part mp ON p.part = mp.max_part_num GROUP BY p.part ` type GetDocumentUploadCurrentPartParams struct { Clientid *string `db:"clientid"` Querydate pgtype.Timestamptz `db:"querydate"` } type GetDocumentUploadCurrentPartRow struct { Part uint16 `db:"part"` Count int64 `db:"count"` } // GetDocumentUploadCurrentPart // // WITH client as ( // select clientId from clients where clientId = $1 // ), // parts as ( // SELECT docs.part // FROM client as c // JOIN documentUploads as docs on docs.clientId = c.clientId // WHERE date(docs.createdAt) = date($2) // ), // max_part as ( // SELECT COALESCE(max(part), 0) as max_part_num FROM parts // ) // SELECT // COALESCE(p.part, 0)::unsignedsmallint as part, // COUNT(p.part) as count // FROM parts p // RIGHT JOIN max_part mp ON p.part = mp.max_part_num // GROUP BY p.part func (q *Queries) GetDocumentUploadCurrentPart(ctx context.Context, arg *GetDocumentUploadCurrentPartParams) (*GetDocumentUploadCurrentPartRow, error) { row := q.db.QueryRow(ctx, getDocumentUploadCurrentPart, arg.Clientid, arg.Querydate) var i GetDocumentUploadCurrentPartRow err := row.Scan(&i.Part, &i.Count) return &i, err } const listDocumentIDsBatch = `-- name: ListDocumentIDsBatch :many SELECT id, totalCount FROM listDocumentIDs($1, $2, $3) ` type ListDocumentIDsBatchParams struct { Clientid string `db:"clientid"` Batchsize int32 `db:"batchsize"` Pageoffset int32 `db:"pageoffset"` } type ListDocumentIDsBatchRow struct { ID *uuid.UUID `db:"id"` Totalcount *int64 `db:"totalcount"` } // ListDocumentIDsBatch // // SELECT id, totalCount FROM listDocumentIDs($1, $2, $3) func (q *Queries) ListDocumentIDsBatch(ctx context.Context, arg *ListDocumentIDsBatchParams) ([]*ListDocumentIDsBatchRow, error) { rows, err := q.db.Query(ctx, listDocumentIDsBatch, arg.Clientid, arg.Batchsize, arg.Pageoffset) if err != nil { return nil, err } defer rows.Close() items := []*ListDocumentIDsBatchRow{} for rows.Next() { var i ListDocumentIDsBatchRow if err := rows.Scan(&i.ID, &i.Totalcount); err != nil { return nil, err } items = append(items, &i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listDocumentsByClient = `-- name: ListDocumentsByClient :many SELECT id, hash from documents where clientId = $1 ` type ListDocumentsByClientRow struct { ID uuid.UUID `db:"id"` Hash string `db:"hash"` } // ListDocumentsByClient // // SELECT id, hash from documents where clientId = $1 func (q *Queries) ListDocumentsByClient(ctx context.Context, clientid string) ([]*ListDocumentsByClientRow, error) { rows, err := q.db.Query(ctx, listDocumentsByClient, clientid) if err != nil { return nil, err } defer rows.Close() items := []*ListDocumentsByClientRow{} for rows.Next() { var i ListDocumentsByClientRow if err := rows.Scan(&i.ID, &i.Hash); err != nil { return nil, err } items = append(items, &i) } if err := rows.Err(); err != nil { return nil, err } return items, nil }