Files
warehouse-management-BE/sqlc_gen/component.sql.go
2026-05-11 10:35:38 +07:00

187 lines
4.6 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: component.sql
package db
import (
"context"
"time"
"github.com/jackc/pgx/v5/pgtype"
)
const createComponent = `-- name: CreateComponent :one
INSERT INTO components (component_type_id,name, description,unit,min_quantity,metadata, created_at)
VALUES (
$1,
$2,
$3,
$4,
$5,
$6,
$7
)
RETURNING id, component_type_id, name, description, unit, total_quantity, min_quantity, metadata, created_at, updated_at
`
type CreateComponentParams struct {
ComponentTypeID int64 `db:"component_type_id" json:"componentTypeId"`
Name string `db:"name" json:"name"`
Description pgtype.Text `db:"description" json:"description"`
Unit string `db:"unit" json:"unit"`
MinQuantity int32 `db:"min_quantity" json:"minQuantity"`
Metadata []byte `db:"metadata" json:"metadata"`
CreatedAt time.Time `db:"created_at" json:"createdAt"`
}
func (q *Queries) CreateComponent(ctx context.Context, arg CreateComponentParams) (Component, error) {
row := q.db.QueryRow(ctx, createComponent,
arg.ComponentTypeID,
arg.Name,
arg.Description,
arg.Unit,
arg.MinQuantity,
arg.Metadata,
arg.CreatedAt,
)
var i Component
err := row.Scan(
&i.ID,
&i.ComponentTypeID,
&i.Name,
&i.Description,
&i.Unit,
&i.TotalQuantity,
&i.MinQuantity,
&i.Metadata,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const deleteComponent = `-- name: DeleteComponent :execrows
DELETE FROM components
WHERE id = $1
`
func (q *Queries) DeleteComponent(ctx context.Context, id int64) (int64, error) {
result, err := q.db.Exec(ctx, deleteComponent, id)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const getComponentByID = `-- name: GetComponentByID :one
SELECT id, component_type_id, name, description, unit, total_quantity, min_quantity, metadata, created_at, updated_at FROM components
WHERE id = $1
`
func (q *Queries) GetComponentByID(ctx context.Context, id int64) (Component, error) {
row := q.db.QueryRow(ctx, getComponentByID, id)
var i Component
err := row.Scan(
&i.ID,
&i.ComponentTypeID,
&i.Name,
&i.Description,
&i.Unit,
&i.TotalQuantity,
&i.MinQuantity,
&i.Metadata,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const listComponents = `-- name: ListComponents :many
SELECT id, component_type_id, name, description, unit, total_quantity, min_quantity, metadata, created_at, updated_at FROM components
ORDER BY created_at DESC
`
func (q *Queries) ListComponents(ctx context.Context) ([]Component, error) {
rows, err := q.db.Query(ctx, listComponents)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Component
for rows.Next() {
var i Component
if err := rows.Scan(
&i.ID,
&i.ComponentTypeID,
&i.Name,
&i.Description,
&i.Unit,
&i.TotalQuantity,
&i.MinQuantity,
&i.Metadata,
&i.CreatedAt,
&i.UpdatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateComponent = `-- name: UpdateComponent :one
UPDATE components
SET name = CASE WHEN $1 = '' THEN name ELSE $1 END,
component_type_id = coalesce($2, component_type_id),
description = coalesce($3, description),
unit = coalesce($4, unit),
min_quantity = coalesce($5, min_quantity),
metadata = coalesce($6, metadata),
updated_at = $7
WHERE id = $8
RETURNING id, component_type_id, name, description, unit, total_quantity, min_quantity, metadata, created_at, updated_at
`
type UpdateComponentParams struct {
Name interface{} `db:"name" json:"name"`
ComponentTypeID int64 `db:"component_type_id" json:"componentTypeId"`
Description pgtype.Text `db:"description" json:"description"`
Unit string `db:"unit" json:"unit"`
MinQuantity int32 `db:"min_quantity" json:"minQuantity"`
Metadata []byte `db:"metadata" json:"metadata"`
UpdatedAt time.Time `db:"updated_at" json:"updatedAt"`
ID int64 `db:"id" json:"id"`
}
func (q *Queries) UpdateComponent(ctx context.Context, arg UpdateComponentParams) (Component, error) {
row := q.db.QueryRow(ctx, updateComponent,
arg.Name,
arg.ComponentTypeID,
arg.Description,
arg.Unit,
arg.MinQuantity,
arg.Metadata,
arg.UpdatedAt,
arg.ID,
)
var i Component
err := row.Scan(
&i.ID,
&i.ComponentTypeID,
&i.Name,
&i.Description,
&i.Unit,
&i.TotalQuantity,
&i.MinQuantity,
&i.Metadata,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}