// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.29.0 // source: enquiries.sql package db import ( "context" "database/sql" "time" ) const archiveEnquiry = `-- name: ArchiveEnquiry :exec UPDATE enquiries SET archived = 1 WHERE id = ? ` func (q *Queries) ArchiveEnquiry(ctx context.Context, id int32) error { _, err := q.db.ExecContext(ctx, archiveEnquiry, id) return err } const countEnquiries = `-- name: CountEnquiries :one SELECT COUNT(*) FROM enquiries WHERE archived = 0 ` func (q *Queries) CountEnquiries(ctx context.Context) (int64, error) { row := q.db.QueryRowContext(ctx, countEnquiries) var count int64 err := row.Scan(&count) return count, err } const countEnquiriesByPrinciple = `-- name: CountEnquiriesByPrinciple :one SELECT COUNT(*) FROM enquiries WHERE principle_code = ? ` func (q *Queries) CountEnquiriesByPrinciple(ctx context.Context, principleCode int32) (int64, error) { row := q.db.QueryRowContext(ctx, countEnquiriesByPrinciple, principleCode) var count int64 err := row.Scan(&count) return count, err } const countEnquiriesByPrincipleAndState = `-- name: CountEnquiriesByPrincipleAndState :one SELECT COUNT(*) FROM enquiries WHERE principle_code = ? AND state_id = ? ` type CountEnquiriesByPrincipleAndStateParams struct { PrincipleCode int32 `json:"principle_code"` StateID int32 `json:"state_id"` } func (q *Queries) CountEnquiriesByPrincipleAndState(ctx context.Context, arg CountEnquiriesByPrincipleAndStateParams) (int64, error) { row := q.db.QueryRowContext(ctx, countEnquiriesByPrincipleAndState, arg.PrincipleCode, arg.StateID) var count int64 err := row.Scan(&count) return count, err } const countEnquiriesByStatus = `-- name: CountEnquiriesByStatus :one SELECT COUNT(*) FROM enquiries WHERE status_id = ? AND archived = 0 ` func (q *Queries) CountEnquiriesByStatus(ctx context.Context, statusID int32) (int64, error) { row := q.db.QueryRowContext(ctx, countEnquiriesByStatus, statusID) var count int64 err := row.Scan(&count) return count, err } const createEnquiry = `-- name: CreateEnquiry :execresult INSERT INTO enquiries ( created, title, user_id, customer_id, contact_id, contact_user_id, state_id, country_id, principle_id, status_id, comments, principle_code, gst, billing_address_id, shipping_address_id, posted, archived ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ` type CreateEnquiryParams struct { Created time.Time `json:"created"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` Archived int8 `json:"archived"` } func (q *Queries) CreateEnquiry(ctx context.Context, arg CreateEnquiryParams) (sql.Result, error) { return q.db.ExecContext(ctx, createEnquiry, arg.Created, arg.Title, arg.UserID, arg.CustomerID, arg.ContactID, arg.ContactUserID, arg.StateID, arg.CountryID, arg.PrincipleID, arg.StatusID, arg.Comments, arg.PrincipleCode, arg.Gst, arg.BillingAddressID, arg.ShippingAddressID, arg.Posted, arg.Archived, ) } const getAllCountries = `-- name: GetAllCountries :many SELECT id, name FROM countries ORDER BY name ` func (q *Queries) GetAllCountries(ctx context.Context) ([]Country, error) { rows, err := q.db.QueryContext(ctx, getAllCountries) if err != nil { return nil, err } defer rows.Close() items := []Country{} for rows.Next() { var i Country if err := rows.Scan(&i.ID, &i.Name); 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 getAllPrinciples = `-- name: GetAllPrinciples :many SELECT id, name, short_name, code FROM principles ORDER BY name ` func (q *Queries) GetAllPrinciples(ctx context.Context) ([]Principle, error) { rows, err := q.db.QueryContext(ctx, getAllPrinciples) if err != nil { return nil, err } defer rows.Close() items := []Principle{} for rows.Next() { var i Principle if err := rows.Scan( &i.ID, &i.Name, &i.ShortName, &i.Code, ); 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 getAllStates = `-- name: GetAllStates :many SELECT id, name, shortform, enqform FROM states ORDER BY name ` func (q *Queries) GetAllStates(ctx context.Context) ([]State, error) { rows, err := q.db.QueryContext(ctx, getAllStates) if err != nil { return nil, err } defer rows.Close() items := []State{} for rows.Next() { var i State if err := rows.Scan( &i.ID, &i.Name, &i.Shortform, &i.Enqform, ); 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 getAllStatuses = `-- name: GetAllStatuses :many SELECT id, name FROM statuses ORDER BY name ` type GetAllStatusesRow struct { ID int32 `json:"id"` Name string `json:"name"` } func (q *Queries) GetAllStatuses(ctx context.Context) ([]GetAllStatusesRow, error) { rows, err := q.db.QueryContext(ctx, getAllStatuses) if err != nil { return nil, err } defer rows.Close() items := []GetAllStatusesRow{} for rows.Next() { var i GetAllStatusesRow if err := rows.Scan(&i.ID, &i.Name); 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 getEnquiriesByCustomer = `-- name: GetEnquiriesByCustomer :many SELECT e.id, e.created, e.submitted, e.title, e.user_id, e.customer_id, e.contact_id, e.contact_user_id, e.state_id, e.country_id, e.principle_id, e.status_id, e.comments, e.principle_code, e.gst, e.billing_address_id, e.shipping_address_id, e.posted, e.email_count, e.invoice_count, e.job_count, e.quote_count, e.archived, u.first_name as user_first_name, u.last_name as user_last_name, c.name as customer_name, contact.first_name as contact_first_name, contact.last_name as contact_last_name, s.name as status_name, p.name as principle_name, p.short_name as principle_short_name FROM enquiries e LEFT JOIN users u ON e.user_id = u.id LEFT JOIN customers c ON e.customer_id = c.id LEFT JOIN users contact ON e.contact_user_id = contact.id LEFT JOIN statuses s ON e.status_id = s.id LEFT JOIN principles p ON e.principle_id = p.id WHERE e.customer_id = ? AND e.archived = 0 ORDER BY e.id DESC LIMIT ? OFFSET ? ` type GetEnquiriesByCustomerParams struct { CustomerID int32 `json:"customer_id"` Limit int32 `json:"limit"` Offset int32 `json:"offset"` } type GetEnquiriesByCustomerRow struct { ID int32 `json:"id"` Created time.Time `json:"created"` Submitted sql.NullTime `json:"submitted"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` EmailCount int32 `json:"email_count"` InvoiceCount int32 `json:"invoice_count"` JobCount int32 `json:"job_count"` QuoteCount int32 `json:"quote_count"` Archived int8 `json:"archived"` UserFirstName sql.NullString `json:"user_first_name"` UserLastName sql.NullString `json:"user_last_name"` CustomerName sql.NullString `json:"customer_name"` ContactFirstName sql.NullString `json:"contact_first_name"` ContactLastName sql.NullString `json:"contact_last_name"` StatusName sql.NullString `json:"status_name"` PrincipleName sql.NullString `json:"principle_name"` PrincipleShortName sql.NullString `json:"principle_short_name"` } func (q *Queries) GetEnquiriesByCustomer(ctx context.Context, arg GetEnquiriesByCustomerParams) ([]GetEnquiriesByCustomerRow, error) { rows, err := q.db.QueryContext(ctx, getEnquiriesByCustomer, arg.CustomerID, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []GetEnquiriesByCustomerRow{} for rows.Next() { var i GetEnquiriesByCustomerRow if err := rows.Scan( &i.ID, &i.Created, &i.Submitted, &i.Title, &i.UserID, &i.CustomerID, &i.ContactID, &i.ContactUserID, &i.StateID, &i.CountryID, &i.PrincipleID, &i.StatusID, &i.Comments, &i.PrincipleCode, &i.Gst, &i.BillingAddressID, &i.ShippingAddressID, &i.Posted, &i.EmailCount, &i.InvoiceCount, &i.JobCount, &i.QuoteCount, &i.Archived, &i.UserFirstName, &i.UserLastName, &i.CustomerName, &i.ContactFirstName, &i.ContactLastName, &i.StatusName, &i.PrincipleName, &i.PrincipleShortName, ); 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 getEnquiriesByUser = `-- name: GetEnquiriesByUser :many SELECT e.id, e.created, e.submitted, e.title, e.user_id, e.customer_id, e.contact_id, e.contact_user_id, e.state_id, e.country_id, e.principle_id, e.status_id, e.comments, e.principle_code, e.gst, e.billing_address_id, e.shipping_address_id, e.posted, e.email_count, e.invoice_count, e.job_count, e.quote_count, e.archived, u.first_name as user_first_name, u.last_name as user_last_name, c.name as customer_name, contact.first_name as contact_first_name, contact.last_name as contact_last_name, s.name as status_name, p.name as principle_name, p.short_name as principle_short_name FROM enquiries e LEFT JOIN users u ON e.user_id = u.id LEFT JOIN customers c ON e.customer_id = c.id LEFT JOIN users contact ON e.contact_user_id = contact.id LEFT JOIN statuses s ON e.status_id = s.id LEFT JOIN principles p ON e.principle_id = p.id WHERE e.user_id = ? AND e.archived = 0 ORDER BY e.id DESC LIMIT ? OFFSET ? ` type GetEnquiriesByUserParams struct { UserID int32 `json:"user_id"` Limit int32 `json:"limit"` Offset int32 `json:"offset"` } type GetEnquiriesByUserRow struct { ID int32 `json:"id"` Created time.Time `json:"created"` Submitted sql.NullTime `json:"submitted"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` EmailCount int32 `json:"email_count"` InvoiceCount int32 `json:"invoice_count"` JobCount int32 `json:"job_count"` QuoteCount int32 `json:"quote_count"` Archived int8 `json:"archived"` UserFirstName sql.NullString `json:"user_first_name"` UserLastName sql.NullString `json:"user_last_name"` CustomerName sql.NullString `json:"customer_name"` ContactFirstName sql.NullString `json:"contact_first_name"` ContactLastName sql.NullString `json:"contact_last_name"` StatusName sql.NullString `json:"status_name"` PrincipleName sql.NullString `json:"principle_name"` PrincipleShortName sql.NullString `json:"principle_short_name"` } func (q *Queries) GetEnquiriesByUser(ctx context.Context, arg GetEnquiriesByUserParams) ([]GetEnquiriesByUserRow, error) { rows, err := q.db.QueryContext(ctx, getEnquiriesByUser, arg.UserID, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []GetEnquiriesByUserRow{} for rows.Next() { var i GetEnquiriesByUserRow if err := rows.Scan( &i.ID, &i.Created, &i.Submitted, &i.Title, &i.UserID, &i.CustomerID, &i.ContactID, &i.ContactUserID, &i.StateID, &i.CountryID, &i.PrincipleID, &i.StatusID, &i.Comments, &i.PrincipleCode, &i.Gst, &i.BillingAddressID, &i.ShippingAddressID, &i.Posted, &i.EmailCount, &i.InvoiceCount, &i.JobCount, &i.QuoteCount, &i.Archived, &i.UserFirstName, &i.UserLastName, &i.CustomerName, &i.ContactFirstName, &i.ContactLastName, &i.StatusName, &i.PrincipleName, &i.PrincipleShortName, ); 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 getEnquiry = `-- name: GetEnquiry :one SELECT e.id, e.created, e.submitted, e.title, e.user_id, e.customer_id, e.contact_id, e.contact_user_id, e.state_id, e.country_id, e.principle_id, e.status_id, e.comments, e.principle_code, e.gst, e.billing_address_id, e.shipping_address_id, e.posted, e.email_count, e.invoice_count, e.job_count, e.quote_count, e.archived, u.first_name as user_first_name, u.last_name as user_last_name, c.name as customer_name, contact.first_name as contact_first_name, contact.last_name as contact_last_name, contact.email as contact_email, contact.mobile as contact_mobile, contact.direct_phone as contact_direct_phone, contact.phone as contact_phone, contact.phone_extension as contact_phone_extension, s.name as status_name, p.name as principle_name, p.short_name as principle_short_name, st.name as state_name, st.shortform as state_shortform, co.name as country_name FROM enquiries e LEFT JOIN users u ON e.user_id = u.id LEFT JOIN customers c ON e.customer_id = c.id LEFT JOIN users contact ON e.contact_user_id = contact.id LEFT JOIN statuses s ON e.status_id = s.id LEFT JOIN principles p ON e.principle_id = p.id LEFT JOIN states st ON e.state_id = st.id LEFT JOIN countries co ON e.country_id = co.id WHERE e.id = ? ` type GetEnquiryRow struct { ID int32 `json:"id"` Created time.Time `json:"created"` Submitted sql.NullTime `json:"submitted"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` EmailCount int32 `json:"email_count"` InvoiceCount int32 `json:"invoice_count"` JobCount int32 `json:"job_count"` QuoteCount int32 `json:"quote_count"` Archived int8 `json:"archived"` UserFirstName sql.NullString `json:"user_first_name"` UserLastName sql.NullString `json:"user_last_name"` CustomerName sql.NullString `json:"customer_name"` ContactFirstName sql.NullString `json:"contact_first_name"` ContactLastName sql.NullString `json:"contact_last_name"` ContactEmail sql.NullString `json:"contact_email"` ContactMobile sql.NullString `json:"contact_mobile"` ContactDirectPhone sql.NullString `json:"contact_direct_phone"` ContactPhone sql.NullString `json:"contact_phone"` ContactPhoneExtension sql.NullString `json:"contact_phone_extension"` StatusName sql.NullString `json:"status_name"` PrincipleName sql.NullString `json:"principle_name"` PrincipleShortName sql.NullString `json:"principle_short_name"` StateName sql.NullString `json:"state_name"` StateShortform sql.NullString `json:"state_shortform"` CountryName sql.NullString `json:"country_name"` } func (q *Queries) GetEnquiry(ctx context.Context, id int32) (GetEnquiryRow, error) { row := q.db.QueryRowContext(ctx, getEnquiry, id) var i GetEnquiryRow err := row.Scan( &i.ID, &i.Created, &i.Submitted, &i.Title, &i.UserID, &i.CustomerID, &i.ContactID, &i.ContactUserID, &i.StateID, &i.CountryID, &i.PrincipleID, &i.StatusID, &i.Comments, &i.PrincipleCode, &i.Gst, &i.BillingAddressID, &i.ShippingAddressID, &i.Posted, &i.EmailCount, &i.InvoiceCount, &i.JobCount, &i.QuoteCount, &i.Archived, &i.UserFirstName, &i.UserLastName, &i.CustomerName, &i.ContactFirstName, &i.ContactLastName, &i.ContactEmail, &i.ContactMobile, &i.ContactDirectPhone, &i.ContactPhone, &i.ContactPhoneExtension, &i.StatusName, &i.PrincipleName, &i.PrincipleShortName, &i.StateName, &i.StateShortform, &i.CountryName, ) return i, err } const listArchivedEnquiries = `-- name: ListArchivedEnquiries :many SELECT e.id, e.created, e.submitted, e.title, e.user_id, e.customer_id, e.contact_id, e.contact_user_id, e.state_id, e.country_id, e.principle_id, e.status_id, e.comments, e.principle_code, e.gst, e.billing_address_id, e.shipping_address_id, e.posted, e.email_count, e.invoice_count, e.job_count, e.quote_count, e.archived, u.first_name as user_first_name, u.last_name as user_last_name, c.name as customer_name, contact.first_name as contact_first_name, contact.last_name as contact_last_name, s.name as status_name, p.name as principle_name, p.short_name as principle_short_name FROM enquiries e LEFT JOIN users u ON e.user_id = u.id LEFT JOIN customers c ON e.customer_id = c.id LEFT JOIN users contact ON e.contact_user_id = contact.id LEFT JOIN statuses s ON e.status_id = s.id LEFT JOIN principles p ON e.principle_id = p.id WHERE e.archived = 1 ORDER BY e.id DESC LIMIT ? OFFSET ? ` type ListArchivedEnquiriesParams struct { Limit int32 `json:"limit"` Offset int32 `json:"offset"` } type ListArchivedEnquiriesRow struct { ID int32 `json:"id"` Created time.Time `json:"created"` Submitted sql.NullTime `json:"submitted"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` EmailCount int32 `json:"email_count"` InvoiceCount int32 `json:"invoice_count"` JobCount int32 `json:"job_count"` QuoteCount int32 `json:"quote_count"` Archived int8 `json:"archived"` UserFirstName sql.NullString `json:"user_first_name"` UserLastName sql.NullString `json:"user_last_name"` CustomerName sql.NullString `json:"customer_name"` ContactFirstName sql.NullString `json:"contact_first_name"` ContactLastName sql.NullString `json:"contact_last_name"` StatusName sql.NullString `json:"status_name"` PrincipleName sql.NullString `json:"principle_name"` PrincipleShortName sql.NullString `json:"principle_short_name"` } func (q *Queries) ListArchivedEnquiries(ctx context.Context, arg ListArchivedEnquiriesParams) ([]ListArchivedEnquiriesRow, error) { rows, err := q.db.QueryContext(ctx, listArchivedEnquiries, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []ListArchivedEnquiriesRow{} for rows.Next() { var i ListArchivedEnquiriesRow if err := rows.Scan( &i.ID, &i.Created, &i.Submitted, &i.Title, &i.UserID, &i.CustomerID, &i.ContactID, &i.ContactUserID, &i.StateID, &i.CountryID, &i.PrincipleID, &i.StatusID, &i.Comments, &i.PrincipleCode, &i.Gst, &i.BillingAddressID, &i.ShippingAddressID, &i.Posted, &i.EmailCount, &i.InvoiceCount, &i.JobCount, &i.QuoteCount, &i.Archived, &i.UserFirstName, &i.UserLastName, &i.CustomerName, &i.ContactFirstName, &i.ContactLastName, &i.StatusName, &i.PrincipleName, &i.PrincipleShortName, ); 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 listEnquiries = `-- name: ListEnquiries :many SELECT e.id, e.created, e.submitted, e.title, e.user_id, e.customer_id, e.contact_id, e.contact_user_id, e.state_id, e.country_id, e.principle_id, e.status_id, e.comments, e.principle_code, e.gst, e.billing_address_id, e.shipping_address_id, e.posted, e.email_count, e.invoice_count, e.job_count, e.quote_count, e.archived, u.first_name as user_first_name, u.last_name as user_last_name, c.name as customer_name, contact.first_name as contact_first_name, contact.last_name as contact_last_name, contact.email as contact_email, contact.mobile as contact_mobile, contact.direct_phone as contact_direct_phone, contact.phone as contact_phone, contact.phone_extension as contact_phone_extension, s.name as status_name, p.name as principle_name, p.short_name as principle_short_name FROM enquiries e LEFT JOIN users u ON e.user_id = u.id LEFT JOIN customers c ON e.customer_id = c.id LEFT JOIN users contact ON e.contact_user_id = contact.id LEFT JOIN statuses s ON e.status_id = s.id LEFT JOIN principles p ON e.principle_id = p.id WHERE e.archived = 0 ORDER BY e.id DESC LIMIT ? OFFSET ? ` type ListEnquiriesParams struct { Limit int32 `json:"limit"` Offset int32 `json:"offset"` } type ListEnquiriesRow struct { ID int32 `json:"id"` Created time.Time `json:"created"` Submitted sql.NullTime `json:"submitted"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` EmailCount int32 `json:"email_count"` InvoiceCount int32 `json:"invoice_count"` JobCount int32 `json:"job_count"` QuoteCount int32 `json:"quote_count"` Archived int8 `json:"archived"` UserFirstName sql.NullString `json:"user_first_name"` UserLastName sql.NullString `json:"user_last_name"` CustomerName sql.NullString `json:"customer_name"` ContactFirstName sql.NullString `json:"contact_first_name"` ContactLastName sql.NullString `json:"contact_last_name"` ContactEmail sql.NullString `json:"contact_email"` ContactMobile sql.NullString `json:"contact_mobile"` ContactDirectPhone sql.NullString `json:"contact_direct_phone"` ContactPhone sql.NullString `json:"contact_phone"` ContactPhoneExtension sql.NullString `json:"contact_phone_extension"` StatusName sql.NullString `json:"status_name"` PrincipleName sql.NullString `json:"principle_name"` PrincipleShortName sql.NullString `json:"principle_short_name"` } func (q *Queries) ListEnquiries(ctx context.Context, arg ListEnquiriesParams) ([]ListEnquiriesRow, error) { rows, err := q.db.QueryContext(ctx, listEnquiries, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []ListEnquiriesRow{} for rows.Next() { var i ListEnquiriesRow if err := rows.Scan( &i.ID, &i.Created, &i.Submitted, &i.Title, &i.UserID, &i.CustomerID, &i.ContactID, &i.ContactUserID, &i.StateID, &i.CountryID, &i.PrincipleID, &i.StatusID, &i.Comments, &i.PrincipleCode, &i.Gst, &i.BillingAddressID, &i.ShippingAddressID, &i.Posted, &i.EmailCount, &i.InvoiceCount, &i.JobCount, &i.QuoteCount, &i.Archived, &i.UserFirstName, &i.UserLastName, &i.CustomerName, &i.ContactFirstName, &i.ContactLastName, &i.ContactEmail, &i.ContactMobile, &i.ContactDirectPhone, &i.ContactPhone, &i.ContactPhoneExtension, &i.StatusName, &i.PrincipleName, &i.PrincipleShortName, ); 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 markEnquirySubmitted = `-- name: MarkEnquirySubmitted :exec UPDATE enquiries SET submitted = ? WHERE id = ? ` type MarkEnquirySubmittedParams struct { Submitted sql.NullTime `json:"submitted"` ID int32 `json:"id"` } func (q *Queries) MarkEnquirySubmitted(ctx context.Context, arg MarkEnquirySubmittedParams) error { _, err := q.db.ExecContext(ctx, markEnquirySubmitted, arg.Submitted, arg.ID) return err } const searchEnquiries = `-- name: SearchEnquiries :many SELECT e.id, e.created, e.submitted, e.title, e.user_id, e.customer_id, e.contact_id, e.contact_user_id, e.state_id, e.country_id, e.principle_id, e.status_id, e.comments, e.principle_code, e.gst, e.billing_address_id, e.shipping_address_id, e.posted, e.email_count, e.invoice_count, e.job_count, e.quote_count, e.archived, u.first_name as user_first_name, u.last_name as user_last_name, c.name as customer_name, contact.first_name as contact_first_name, contact.last_name as contact_last_name, s.name as status_name, p.name as principle_name, p.short_name as principle_short_name FROM enquiries e LEFT JOIN users u ON e.user_id = u.id LEFT JOIN customers c ON e.customer_id = c.id LEFT JOIN users contact ON e.contact_user_id = contact.id LEFT JOIN statuses s ON e.status_id = s.id LEFT JOIN principles p ON e.principle_id = p.id WHERE e.archived = 0 AND ( e.title LIKE CONCAT('%', ?, '%') OR c.name LIKE CONCAT('%', ?, '%') OR CONCAT(contact.first_name, ' ', contact.last_name) LIKE CONCAT('%', ?, '%') ) ORDER BY e.id DESC LIMIT ? OFFSET ? ` type SearchEnquiriesParams struct { CONCAT interface{} `json:"CONCAT"` CONCAT_2 interface{} `json:"CONCAT_2"` CONCAT_3 interface{} `json:"CONCAT_3"` Limit int32 `json:"limit"` Offset int32 `json:"offset"` } type SearchEnquiriesRow struct { ID int32 `json:"id"` Created time.Time `json:"created"` Submitted sql.NullTime `json:"submitted"` Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` EmailCount int32 `json:"email_count"` InvoiceCount int32 `json:"invoice_count"` JobCount int32 `json:"job_count"` QuoteCount int32 `json:"quote_count"` Archived int8 `json:"archived"` UserFirstName sql.NullString `json:"user_first_name"` UserLastName sql.NullString `json:"user_last_name"` CustomerName sql.NullString `json:"customer_name"` ContactFirstName sql.NullString `json:"contact_first_name"` ContactLastName sql.NullString `json:"contact_last_name"` StatusName sql.NullString `json:"status_name"` PrincipleName sql.NullString `json:"principle_name"` PrincipleShortName sql.NullString `json:"principle_short_name"` } func (q *Queries) SearchEnquiries(ctx context.Context, arg SearchEnquiriesParams) ([]SearchEnquiriesRow, error) { rows, err := q.db.QueryContext(ctx, searchEnquiries, arg.CONCAT, arg.CONCAT_2, arg.CONCAT_3, arg.Limit, arg.Offset, ) if err != nil { return nil, err } defer rows.Close() items := []SearchEnquiriesRow{} for rows.Next() { var i SearchEnquiriesRow if err := rows.Scan( &i.ID, &i.Created, &i.Submitted, &i.Title, &i.UserID, &i.CustomerID, &i.ContactID, &i.ContactUserID, &i.StateID, &i.CountryID, &i.PrincipleID, &i.StatusID, &i.Comments, &i.PrincipleCode, &i.Gst, &i.BillingAddressID, &i.ShippingAddressID, &i.Posted, &i.EmailCount, &i.InvoiceCount, &i.JobCount, &i.QuoteCount, &i.Archived, &i.UserFirstName, &i.UserLastName, &i.CustomerName, &i.ContactFirstName, &i.ContactLastName, &i.StatusName, &i.PrincipleName, &i.PrincipleShortName, ); 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 unarchiveEnquiry = `-- name: UnarchiveEnquiry :exec UPDATE enquiries SET archived = 0 WHERE id = ? ` func (q *Queries) UnarchiveEnquiry(ctx context.Context, id int32) error { _, err := q.db.ExecContext(ctx, unarchiveEnquiry, id) return err } const updateEnquiry = `-- name: UpdateEnquiry :exec UPDATE enquiries SET title = ?, user_id = ?, customer_id = ?, contact_id = ?, contact_user_id = ?, state_id = ?, country_id = ?, principle_id = ?, status_id = ?, comments = ?, principle_code = ?, gst = ?, billing_address_id = ?, shipping_address_id = ?, posted = ?, submitted = ? WHERE id = ? ` type UpdateEnquiryParams struct { Title string `json:"title"` UserID int32 `json:"user_id"` CustomerID int32 `json:"customer_id"` ContactID int32 `json:"contact_id"` ContactUserID int32 `json:"contact_user_id"` StateID int32 `json:"state_id"` CountryID int32 `json:"country_id"` PrincipleID int32 `json:"principle_id"` StatusID int32 `json:"status_id"` Comments string `json:"comments"` PrincipleCode int32 `json:"principle_code"` Gst bool `json:"gst"` BillingAddressID sql.NullInt32 `json:"billing_address_id"` ShippingAddressID sql.NullInt32 `json:"shipping_address_id"` Posted bool `json:"posted"` Submitted sql.NullTime `json:"submitted"` ID int32 `json:"id"` } func (q *Queries) UpdateEnquiry(ctx context.Context, arg UpdateEnquiryParams) error { _, err := q.db.ExecContext(ctx, updateEnquiry, arg.Title, arg.UserID, arg.CustomerID, arg.ContactID, arg.ContactUserID, arg.StateID, arg.CountryID, arg.PrincipleID, arg.StatusID, arg.Comments, arg.PrincipleCode, arg.Gst, arg.BillingAddressID, arg.ShippingAddressID, arg.Posted, arg.Submitted, arg.ID, ) return err } const updateEnquiryStatus = `-- name: UpdateEnquiryStatus :exec UPDATE enquiries SET status_id = ? WHERE id = ? ` type UpdateEnquiryStatusParams struct { StatusID int32 `json:"status_id"` ID int32 `json:"id"` } func (q *Queries) UpdateEnquiryStatus(ctx context.Context, arg UpdateEnquiryStatusParams) error { _, err := q.db.ExecContext(ctx, updateEnquiryStatus, arg.StatusID, arg.ID) return err }