cmc-sales/go/internal/cmc/db/documents.sql.go

413 lines
12 KiB
Go
Raw Permalink Normal View History

2025-07-02 05:04:36 -07:00
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: documents.sql
package db
import (
"context"
"database/sql"
"time"
)
2025-07-06 14:34:12 -07:00
const countDocuments = `-- name: CountDocuments :one
SELECT COUNT(*) FROM documents
2025-07-02 05:04:36 -07:00
`
2025-07-06 14:34:12 -07:00
func (q *Queries) CountDocuments(ctx context.Context) (int64, error) {
row := q.db.QueryRowContext(ctx, countDocuments)
var count int64
err := row.Scan(&count)
return count, err
}
const countDocumentsByType = `-- name: CountDocumentsByType :one
SELECT COUNT(*) FROM documents WHERE type = ?
`
func (q *Queries) CountDocumentsByType(ctx context.Context, type_ DocumentsType) (int64, error) {
row := q.db.QueryRowContext(ctx, countDocumentsByType, type_)
var count int64
err := row.Scan(&count)
return count, err
2025-07-02 05:04:36 -07:00
}
const createDocument = `-- name: CreateDocument :execresult
INSERT INTO documents (
2025-07-06 14:34:12 -07:00
type, created, user_id, doc_page_count, cmc_reference,
pdf_filename, pdf_created_at, pdf_created_by_user_id,
shipping_details, revision, bill_to, ship_to,
email_sent_at, email_sent_by_user_id
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2025-07-02 05:04:36 -07:00
`
type CreateDocumentParams struct {
Type DocumentsType `json:"type"`
2025-07-06 14:34:12 -07:00
Created time.Time `json:"created"`
2025-07-02 05:04:36 -07:00
UserID int32 `json:"user_id"`
DocPageCount int32 `json:"doc_page_count"`
CmcReference string `json:"cmc_reference"`
PdfFilename string `json:"pdf_filename"`
PdfCreatedAt time.Time `json:"pdf_created_at"`
PdfCreatedByUserID int32 `json:"pdf_created_by_user_id"`
ShippingDetails sql.NullString `json:"shipping_details"`
Revision int32 `json:"revision"`
BillTo sql.NullString `json:"bill_to"`
ShipTo sql.NullString `json:"ship_to"`
EmailSentAt time.Time `json:"email_sent_at"`
EmailSentByUserID int32 `json:"email_sent_by_user_id"`
}
func (q *Queries) CreateDocument(ctx context.Context, arg CreateDocumentParams) (sql.Result, error) {
return q.db.ExecContext(ctx, createDocument,
arg.Type,
2025-07-06 14:34:12 -07:00
arg.Created,
2025-07-02 05:04:36 -07:00
arg.UserID,
arg.DocPageCount,
arg.CmcReference,
arg.PdfFilename,
arg.PdfCreatedAt,
arg.PdfCreatedByUserID,
arg.ShippingDetails,
arg.Revision,
arg.BillTo,
arg.ShipTo,
arg.EmailSentAt,
arg.EmailSentByUserID,
)
}
2025-07-06 14:34:12 -07:00
const deleteDocument = `-- name: DeleteDocument :exec
DELETE FROM documents WHERE id = ?
`
func (q *Queries) DeleteDocument(ctx context.Context, id int32) error {
_, err := q.db.ExecContext(ctx, deleteDocument, id)
return err
}
const getDocument = `-- name: GetDocument :one
SELECT id, type, created, user_id, doc_page_count, cmc_reference, pdf_filename, pdf_created_at, pdf_created_by_user_id, shipping_details, revision, bill_to, ship_to, email_sent_at, email_sent_by_user_id FROM documents WHERE id = ?
`
func (q *Queries) GetDocument(ctx context.Context, id int32) (Document, error) {
row := q.db.QueryRowContext(ctx, getDocument, id)
var i Document
err := row.Scan(
&i.ID,
&i.Type,
&i.Created,
&i.UserID,
&i.DocPageCount,
&i.CmcReference,
&i.PdfFilename,
&i.PdfCreatedAt,
&i.PdfCreatedByUserID,
&i.ShippingDetails,
&i.Revision,
&i.BillTo,
&i.ShipTo,
&i.EmailSentAt,
&i.EmailSentByUserID,
)
return i, err
}
const getDocumentWithUser = `-- name: GetDocumentWithUser :one
2025-07-02 05:04:36 -07:00
SELECT
d.id,
d.type,
d.created,
d.user_id,
d.doc_page_count,
2025-07-06 14:34:12 -07:00
d.cmc_reference,
2025-07-02 05:04:36 -07:00
d.pdf_filename,
d.pdf_created_at,
d.pdf_created_by_user_id,
d.shipping_details,
2025-07-06 14:34:12 -07:00
d.revision,
2025-07-02 05:04:36 -07:00
d.bill_to,
d.ship_to,
d.email_sent_at,
d.email_sent_by_user_id,
2025-07-06 14:34:12 -07:00
u.username as user_username,
2025-07-02 05:04:36 -07:00
u.first_name as user_first_name,
u.last_name as user_last_name,
2025-07-06 14:34:12 -07:00
u.email as user_email,
pu.username as pdf_creator_username,
pu.first_name as pdf_creator_first_name,
pu.last_name as pdf_creator_last_name,
pu.email as pdf_creator_email
2025-07-02 05:04:36 -07:00
FROM documents d
LEFT JOIN users u ON d.user_id = u.id
2025-07-06 14:34:12 -07:00
LEFT JOIN users pu ON d.pdf_created_by_user_id = pu.id
2025-07-02 05:04:36 -07:00
WHERE d.id = ?
`
2025-07-06 14:34:12 -07:00
type GetDocumentWithUserRow struct {
2025-07-02 05:04:36 -07:00
ID int32 `json:"id"`
Type DocumentsType `json:"type"`
Created time.Time `json:"created"`
UserID int32 `json:"user_id"`
DocPageCount int32 `json:"doc_page_count"`
2025-07-06 14:34:12 -07:00
CmcReference string `json:"cmc_reference"`
2025-07-02 05:04:36 -07:00
PdfFilename string `json:"pdf_filename"`
PdfCreatedAt time.Time `json:"pdf_created_at"`
PdfCreatedByUserID int32 `json:"pdf_created_by_user_id"`
ShippingDetails sql.NullString `json:"shipping_details"`
2025-07-06 14:34:12 -07:00
Revision int32 `json:"revision"`
2025-07-02 05:04:36 -07:00
BillTo sql.NullString `json:"bill_to"`
ShipTo sql.NullString `json:"ship_to"`
EmailSentAt time.Time `json:"email_sent_at"`
EmailSentByUserID int32 `json:"email_sent_by_user_id"`
2025-07-06 14:34:12 -07:00
UserUsername sql.NullString `json:"user_username"`
2025-07-02 05:04:36 -07:00
UserFirstName sql.NullString `json:"user_first_name"`
UserLastName sql.NullString `json:"user_last_name"`
2025-07-06 14:34:12 -07:00
UserEmail sql.NullString `json:"user_email"`
PdfCreatorUsername sql.NullString `json:"pdf_creator_username"`
2025-07-02 05:04:36 -07:00
PdfCreatorFirstName sql.NullString `json:"pdf_creator_first_name"`
PdfCreatorLastName sql.NullString `json:"pdf_creator_last_name"`
2025-07-06 14:34:12 -07:00
PdfCreatorEmail sql.NullString `json:"pdf_creator_email"`
2025-07-02 05:04:36 -07:00
}
2025-07-06 14:34:12 -07:00
func (q *Queries) GetDocumentWithUser(ctx context.Context, id int32) (GetDocumentWithUserRow, error) {
row := q.db.QueryRowContext(ctx, getDocumentWithUser, id)
var i GetDocumentWithUserRow
2025-07-02 05:04:36 -07:00
err := row.Scan(
&i.ID,
&i.Type,
&i.Created,
&i.UserID,
&i.DocPageCount,
2025-07-06 14:34:12 -07:00
&i.CmcReference,
2025-07-02 05:04:36 -07:00
&i.PdfFilename,
&i.PdfCreatedAt,
&i.PdfCreatedByUserID,
&i.ShippingDetails,
2025-07-06 14:34:12 -07:00
&i.Revision,
2025-07-02 05:04:36 -07:00
&i.BillTo,
&i.ShipTo,
&i.EmailSentAt,
&i.EmailSentByUserID,
2025-07-06 14:34:12 -07:00
&i.UserUsername,
2025-07-02 05:04:36 -07:00
&i.UserFirstName,
&i.UserLastName,
2025-07-06 14:34:12 -07:00
&i.UserEmail,
&i.PdfCreatorUsername,
2025-07-02 05:04:36 -07:00
&i.PdfCreatorFirstName,
&i.PdfCreatorLastName,
2025-07-06 14:34:12 -07:00
&i.PdfCreatorEmail,
2025-07-02 05:04:36 -07:00
)
return i, err
}
2025-07-06 14:34:12 -07:00
const getRecentDocuments = `-- name: GetRecentDocuments :many
2025-07-02 05:04:36 -07:00
SELECT
d.id,
d.type,
d.created,
d.cmc_reference,
2025-07-06 14:34:12 -07:00
d.pdf_filename,
2025-07-02 05:04:36 -07:00
d.revision,
2025-07-06 14:34:12 -07:00
u.username as created_by_username,
CASE
WHEN d.type = 'quote' THEN CONCAT('Quote ', d.cmc_reference)
WHEN d.type = 'invoice' THEN CONCAT('Invoice ', d.cmc_reference)
WHEN d.type = 'purchaseOrder' THEN CONCAT('Purchase Order ', d.cmc_reference)
WHEN d.type = 'orderAck' THEN CONCAT('Order Ack ', d.cmc_reference)
WHEN d.type = 'packingList' THEN CONCAT('Packing List ', d.cmc_reference)
ELSE CONCAT(d.type, ' ', d.cmc_reference)
END as display_name
2025-07-02 05:04:36 -07:00
FROM documents d
LEFT JOIN users u ON d.user_id = u.id
2025-07-06 14:34:12 -07:00
ORDER BY d.created DESC
LIMIT ?
2025-07-02 05:04:36 -07:00
`
2025-07-06 14:34:12 -07:00
type GetRecentDocumentsRow struct {
ID int32 `json:"id"`
Type DocumentsType `json:"type"`
Created time.Time `json:"created"`
CmcReference string `json:"cmc_reference"`
PdfFilename string `json:"pdf_filename"`
Revision int32 `json:"revision"`
CreatedByUsername sql.NullString `json:"created_by_username"`
DisplayName interface{} `json:"display_name"`
2025-07-02 05:04:36 -07:00
}
2025-07-06 14:34:12 -07:00
func (q *Queries) GetRecentDocuments(ctx context.Context, limit int32) ([]GetRecentDocumentsRow, error) {
rows, err := q.db.QueryContext(ctx, getRecentDocuments, limit)
2025-07-02 05:04:36 -07:00
if err != nil {
return nil, err
}
defer rows.Close()
2025-07-06 14:34:12 -07:00
items := []GetRecentDocumentsRow{}
2025-07-02 05:04:36 -07:00
for rows.Next() {
2025-07-06 14:34:12 -07:00
var i GetRecentDocumentsRow
2025-07-02 05:04:36 -07:00
if err := rows.Scan(
&i.ID,
&i.Type,
&i.Created,
&i.CmcReference,
2025-07-06 14:34:12 -07:00
&i.PdfFilename,
2025-07-02 05:04:36 -07:00
&i.Revision,
2025-07-06 14:34:12 -07:00
&i.CreatedByUsername,
&i.DisplayName,
2025-07-02 05:04:36 -07:00
); 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
}
2025-07-06 14:34:12 -07:00
const listDocuments = `-- name: ListDocuments :many
SELECT id, type, created, user_id, doc_page_count, cmc_reference, pdf_filename, pdf_created_at, pdf_created_by_user_id, shipping_details, revision, bill_to, ship_to, email_sent_at, email_sent_by_user_id FROM documents ORDER BY created DESC LIMIT ? OFFSET ?
2025-07-02 05:04:36 -07:00
`
2025-07-06 14:34:12 -07:00
type ListDocumentsParams struct {
Limit int32 `json:"limit"`
Offset int32 `json:"offset"`
2025-07-02 05:04:36 -07:00
}
2025-07-06 14:34:12 -07:00
func (q *Queries) ListDocuments(ctx context.Context, arg ListDocumentsParams) ([]Document, error) {
rows, err := q.db.QueryContext(ctx, listDocuments, arg.Limit, arg.Offset)
2025-07-02 05:04:36 -07:00
if err != nil {
return nil, err
}
defer rows.Close()
2025-07-06 14:34:12 -07:00
items := []Document{}
2025-07-02 05:04:36 -07:00
for rows.Next() {
2025-07-06 14:34:12 -07:00
var i Document
2025-07-02 05:04:36 -07:00
if err := rows.Scan(
&i.ID,
&i.Type,
&i.Created,
&i.UserID,
&i.DocPageCount,
2025-07-06 14:34:12 -07:00
&i.CmcReference,
2025-07-02 05:04:36 -07:00
&i.PdfFilename,
&i.PdfCreatedAt,
&i.PdfCreatedByUserID,
2025-07-06 14:34:12 -07:00
&i.ShippingDetails,
2025-07-02 05:04:36 -07:00
&i.Revision,
2025-07-06 14:34:12 -07:00
&i.BillTo,
&i.ShipTo,
2025-07-02 05:04:36 -07:00
&i.EmailSentAt,
&i.EmailSentByUserID,
); 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
}
2025-07-06 14:34:12 -07:00
const listDocumentsByType = `-- name: ListDocumentsByType :many
SELECT id, type, created, user_id, doc_page_count, cmc_reference, pdf_filename, pdf_created_at, pdf_created_by_user_id, shipping_details, revision, bill_to, ship_to, email_sent_at, email_sent_by_user_id FROM documents WHERE type = ? ORDER BY created DESC LIMIT ? OFFSET ?
2025-07-02 05:04:36 -07:00
`
2025-07-06 14:34:12 -07:00
type ListDocumentsByTypeParams struct {
Type DocumentsType `json:"type"`
Limit int32 `json:"limit"`
Offset int32 `json:"offset"`
2025-07-02 05:04:36 -07:00
}
2025-07-06 14:34:12 -07:00
func (q *Queries) ListDocumentsByType(ctx context.Context, arg ListDocumentsByTypeParams) ([]Document, error) {
rows, err := q.db.QueryContext(ctx, listDocumentsByType, arg.Type, arg.Limit, arg.Offset)
2025-07-02 05:04:36 -07:00
if err != nil {
return nil, err
}
defer rows.Close()
2025-07-06 14:34:12 -07:00
items := []Document{}
2025-07-02 05:04:36 -07:00
for rows.Next() {
2025-07-06 14:34:12 -07:00
var i Document
2025-07-02 05:04:36 -07:00
if err := rows.Scan(
&i.ID,
&i.Type,
&i.Created,
&i.UserID,
&i.DocPageCount,
2025-07-06 14:34:12 -07:00
&i.CmcReference,
2025-07-02 05:04:36 -07:00
&i.PdfFilename,
&i.PdfCreatedAt,
&i.PdfCreatedByUserID,
2025-07-06 14:34:12 -07:00
&i.ShippingDetails,
2025-07-02 05:04:36 -07:00
&i.Revision,
2025-07-06 14:34:12 -07:00
&i.BillTo,
&i.ShipTo,
2025-07-02 05:04:36 -07:00
&i.EmailSentAt,
&i.EmailSentByUserID,
); 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 updateDocument = `-- name: UpdateDocument :exec
2025-07-06 14:34:12 -07:00
UPDATE documents SET
type = ?, user_id = ?, doc_page_count = ?, cmc_reference = ?,
pdf_filename = ?, pdf_created_at = ?, pdf_created_by_user_id = ?,
shipping_details = ?, revision = ?, bill_to = ?, ship_to = ?,
email_sent_at = ?, email_sent_by_user_id = ?
2025-07-02 05:04:36 -07:00
WHERE id = ?
`
type UpdateDocumentParams struct {
Type DocumentsType `json:"type"`
UserID int32 `json:"user_id"`
DocPageCount int32 `json:"doc_page_count"`
CmcReference string `json:"cmc_reference"`
PdfFilename string `json:"pdf_filename"`
PdfCreatedAt time.Time `json:"pdf_created_at"`
PdfCreatedByUserID int32 `json:"pdf_created_by_user_id"`
ShippingDetails sql.NullString `json:"shipping_details"`
Revision int32 `json:"revision"`
BillTo sql.NullString `json:"bill_to"`
ShipTo sql.NullString `json:"ship_to"`
EmailSentAt time.Time `json:"email_sent_at"`
EmailSentByUserID int32 `json:"email_sent_by_user_id"`
ID int32 `json:"id"`
}
func (q *Queries) UpdateDocument(ctx context.Context, arg UpdateDocumentParams) error {
_, err := q.db.ExecContext(ctx, updateDocument,
arg.Type,
arg.UserID,
arg.DocPageCount,
arg.CmcReference,
arg.PdfFilename,
arg.PdfCreatedAt,
arg.PdfCreatedByUserID,
arg.ShippingDetails,
arg.Revision,
arg.BillTo,
arg.ShipTo,
arg.EmailSentAt,
arg.EmailSentByUserID,
arg.ID,
)
return err
}