This commit is contained in:
Tomas Dvorak
2026-03-13 14:34:19 +01:00
parent 84a8acf944
commit 30d70a6aeb
126 changed files with 27297 additions and 29069 deletions
+31
View File
@@ -0,0 +1,31 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
package eshopreporting
import (
"context"
"database/sql"
)
type DBTX interface {
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
PrepareContext(context.Context, string) (*sql.Stmt, error)
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
return &Queries{
db: tx,
}
}
@@ -0,0 +1,159 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: eshop_reporting.sql
package eshopreporting
import (
"context"
"database/sql"
)
const listOrderStatusBreakdown = `-- name: ListOrderStatusBreakdown :many
SELECT
status,
COUNT(*)::bigint AS order_count
FROM eshop_orders
WHERE deleted_at IS NULL
GROUP BY status
ORDER BY order_count DESC, status ASC
`
type ListOrderStatusBreakdownRow struct {
Status sql.NullString `json:"status"`
OrderCount int64 `json:"order_count"`
}
func (q *Queries) ListOrderStatusBreakdown(ctx context.Context) ([]ListOrderStatusBreakdownRow, error) {
rows, err := q.db.QueryContext(ctx, listOrderStatusBreakdown)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListOrderStatusBreakdownRow
for rows.Next() {
var i ListOrderStatusBreakdownRow
if err := rows.Scan(&i.Status, &i.OrderCount); 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 listRecentOrderSummaries = `-- name: ListRecentOrderSummaries :many
SELECT
o.id,
o.order_number,
o.status,
o.total_amount_cents,
o.currency,
o.shipping_method,
o.shipping_price_cents,
o.created_at,
COALESCE(p.status, '') AS payment_status,
COALESCE(s.status, '') AS shipping_status
FROM eshop_orders AS o
LEFT JOIN LATERAL (
SELECT ep.status
FROM eshop_payments AS ep
WHERE ep.order_id = o.id
AND ep.deleted_at IS NULL
ORDER BY ep.created_at DESC
LIMIT 1
) AS p ON TRUE
LEFT JOIN LATERAL (
SELECT sl.status
FROM eshop_shipping_labels AS sl
WHERE sl.order_id = o.id
AND sl.deleted_at IS NULL
ORDER BY sl.created_at DESC
LIMIT 1
) AS s ON TRUE
WHERE o.deleted_at IS NULL
ORDER BY o.created_at DESC
LIMIT $1
`
type ListRecentOrderSummariesRow struct {
ID int32 `json:"id"`
OrderNumber string `json:"order_number"`
Status sql.NullString `json:"status"`
TotalAmountCents int64 `json:"total_amount_cents"`
Currency sql.NullString `json:"currency"`
ShippingMethod sql.NullString `json:"shipping_method"`
ShippingPriceCents sql.NullInt64 `json:"shipping_price_cents"`
CreatedAt sql.NullTime `json:"created_at"`
PaymentStatus string `json:"payment_status"`
ShippingStatus string `json:"shipping_status"`
}
func (q *Queries) ListRecentOrderSummaries(ctx context.Context, limit int32) ([]ListRecentOrderSummariesRow, error) {
rows, err := q.db.QueryContext(ctx, listRecentOrderSummaries, limit)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListRecentOrderSummariesRow
for rows.Next() {
var i ListRecentOrderSummariesRow
if err := rows.Scan(
&i.ID,
&i.OrderNumber,
&i.Status,
&i.TotalAmountCents,
&i.Currency,
&i.ShippingMethod,
&i.ShippingPriceCents,
&i.CreatedAt,
&i.PaymentStatus,
&i.ShippingStatus,
); 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 summarizeOrderRevenue = `-- name: SummarizeOrderRevenue :one
SELECT
COUNT(*)::bigint AS order_count,
COALESCE(SUM(total_amount_cents), 0)::bigint AS gross_revenue_cents,
COALESCE(SUM(shipping_price_cents), 0)::bigint AS shipping_revenue_cents
FROM eshop_orders
WHERE deleted_at IS NULL
AND created_at >= $1
AND created_at < $2
`
type SummarizeOrderRevenueParams struct {
CreatedAt sql.NullTime `json:"created_at"`
CreatedAt_2 sql.NullTime `json:"created_at_2"`
}
type SummarizeOrderRevenueRow struct {
OrderCount int64 `json:"order_count"`
GrossRevenueCents int64 `json:"gross_revenue_cents"`
ShippingRevenueCents int64 `json:"shipping_revenue_cents"`
}
func (q *Queries) SummarizeOrderRevenue(ctx context.Context, arg SummarizeOrderRevenueParams) (SummarizeOrderRevenueRow, error) {
row := q.db.QueryRowContext(ctx, summarizeOrderRevenue, arg.CreatedAt, arg.CreatedAt_2)
var i SummarizeOrderRevenueRow
err := row.Scan(&i.OrderCount, &i.GrossRevenueCents, &i.ShippingRevenueCents)
return i, err
}
+165
View File
@@ -0,0 +1,165 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
package eshopreporting
import (
"database/sql"
)
type EshopCart struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
UserID sql.NullInt32 `json:"user_id"`
SessionToken sql.NullString `json:"session_token"`
Currency sql.NullString `json:"currency"`
Completed sql.NullBool `json:"completed"`
}
type EshopCartItem struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
CartID int32 `json:"cart_id"`
ProductID int32 `json:"product_id"`
VariantID sql.NullInt32 `json:"variant_id"`
Quantity int32 `json:"quantity"`
UnitPriceCents int64 `json:"unit_price_cents"`
Currency sql.NullString `json:"currency"`
}
type EshopOrder struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
OrderNumber string `json:"order_number"`
UserID sql.NullInt32 `json:"user_id"`
SessionToken sql.NullString `json:"session_token"`
Email sql.NullString `json:"email"`
FirstName sql.NullString `json:"first_name"`
LastName sql.NullString `json:"last_name"`
BillingAddressJson sql.NullString `json:"billing_address_json"`
ShippingAddressJson sql.NullString `json:"shipping_address_json"`
Status sql.NullString `json:"status"`
TotalAmountCents int64 `json:"total_amount_cents"`
Currency sql.NullString `json:"currency"`
ShippingMethod sql.NullString `json:"shipping_method"`
ShippingPriceCents sql.NullInt64 `json:"shipping_price_cents"`
ShippingDataJson sql.NullString `json:"shipping_data_json"`
MetadataJson sql.NullString `json:"metadata_json"`
}
type EshopOrderItem struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
OrderID int32 `json:"order_id"`
ProductID int32 `json:"product_id"`
VariantID sql.NullInt32 `json:"variant_id"`
Name string `json:"name"`
Sku sql.NullString `json:"sku"`
Quantity int32 `json:"quantity"`
UnitPriceCents int64 `json:"unit_price_cents"`
Currency sql.NullString `json:"currency"`
VatRate sql.NullString `json:"vat_rate"`
}
type EshopPayment struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
OrderID int32 `json:"order_id"`
Provider sql.NullString `json:"provider"`
ProviderPaymentID sql.NullString `json:"provider_payment_id"`
Status sql.NullString `json:"status"`
AmountCents int64 `json:"amount_cents"`
Currency sql.NullString `json:"currency"`
RawPayloadJson sql.NullString `json:"raw_payload_json"`
}
type EshopProduct struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
Slug string `json:"slug"`
Name string `json:"name"`
ShortDescription sql.NullString `json:"short_description"`
DescriptionHtml sql.NullString `json:"description_html"`
PriceCents int64 `json:"price_cents"`
Currency sql.NullString `json:"currency"`
VatRate sql.NullString `json:"vat_rate"`
Active sql.NullBool `json:"active"`
StockMode sql.NullString `json:"stock_mode"`
DefaultImageUrl sql.NullString `json:"default_image_url"`
GalleryJson sql.NullString `json:"gallery_json"`
Tags sql.NullString `json:"tags"`
MetadataJson sql.NullString `json:"metadata_json"`
CategoryID sql.NullInt32 `json:"category_id"`
}
type EshopProductCategory struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
Slug string `json:"slug"`
Name string `json:"name"`
ParentID sql.NullInt32 `json:"parent_id"`
DisplayOrder sql.NullInt32 `json:"display_order"`
Active sql.NullBool `json:"active"`
}
type EshopProductVariant struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
ProductID int32 `json:"product_id"`
Sku sql.NullString `json:"sku"`
Name sql.NullString `json:"name"`
AttributesJson sql.NullString `json:"attributes_json"`
StockQty sql.NullInt32 `json:"stock_qty"`
Barcode sql.NullString `json:"barcode"`
ImageUrl sql.NullString `json:"image_url"`
}
type EshopSetting struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
DefaultCurrency sql.NullString `json:"default_currency"`
SupportedCurrencies sql.NullString `json:"supported_currencies"`
DefaultCountry sql.NullString `json:"default_country"`
ShippingOptionsJson sql.NullString `json:"shipping_options_json"`
TermsUrl sql.NullString `json:"terms_url"`
ReturnsPolicyUrl sql.NullString `json:"returns_policy_url"`
SupportEmail sql.NullString `json:"support_email"`
SupportPhone sql.NullString `json:"support_phone"`
}
type EshopShippingLabel struct {
ID int32 `json:"id"`
CreatedAt sql.NullTime `json:"created_at"`
UpdatedAt sql.NullTime `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
OrderID int32 `json:"order_id"`
Carrier sql.NullString `json:"carrier"`
PacketaPacketID sql.NullString `json:"packeta_packet_id"`
TrackingNumber sql.NullString `json:"tracking_number"`
LabelUrl sql.NullString `json:"label_url"`
Status sql.NullString `json:"status"`
HistoryJson sql.NullString `json:"history_json"`
}
type User struct {
ID int32 `json:"id"`
}
@@ -0,0 +1,17 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
package eshopreporting
import (
"context"
)
type Querier interface {
ListOrderStatusBreakdown(ctx context.Context) ([]ListOrderStatusBreakdownRow, error)
ListRecentOrderSummaries(ctx context.Context, limit int32) ([]ListRecentOrderSummariesRow, error)
SummarizeOrderRevenue(ctx context.Context, arg SummarizeOrderRevenueParams) (SummarizeOrderRevenueRow, error)
}
var _ Querier = (*Queries)(nil)