No changes made

This commit is contained in:
2025-04-16 12:47:04 -04:00
commit 1ed3b0c2d4
98 changed files with 8857 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
create table bullets
(
id uuid primary key,
name varchar(255) not null,
weight int not null,
diameter int not null,
meta json,
photo bytea,
manufacturer_id uuid not null,
created_at timestamp default NOW() not null
);
create table manufacturers
(
id uuid primary key ,
name varchar(255) not null,
url varchar(255),
created_at timestamp default NOW() not null
);

View File

@@ -0,0 +1,63 @@
-- name: GetBullets :many
select bullets.id as id,
bullets.name as name,
weight,
diameter,
bullets.created_at,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from bullets
join manufacturers m on m.id = bullets.manufacturer_id
order by manufacturer_name, bullets.name desc;
-- name: GetBulletById :one
select bullets.id as id,
bullets.name,
bullets.diameter,
bullets.weight,
bullets.meta,
bullets.photo,
bullets.created_at,
m.id as manufactuerer_id,
m.name as manufacutuer_name,
m.url as manufacturer_url
from bullets
join manufacturers m on m.id = bullets.manufacturer_id
where bullets.id = $1;
-- name: ForPage :many
select bullets.id as id,
bullets.name as name,
weight,
diameter,
bullets.created_at,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from bullets
join manufacturers m on m.id = bullets.manufacturer_id
order by manufacturer_name, bullets.name desc
limit $1 offset $2;
-- name: DeleteBullet :exec
DELETE
from bullets
where id = $1;
-- name: AddBullet :one
insert into bullets (name, weight, diameter, photo, meta, manufacturer_id)
values ($1, $2, $3, $4, $5, $6)
returning id;
-- name: UpdateBullet :exec
UPDATE bullets
set name=$1,
weight=$2,
diameter=$3,
photo=$4,
meta=$5,
manufacturer_id=$6
where id = $7;

View File

@@ -0,0 +1,253 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: bullets.sql
package bullets
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const addBullet = `-- name: AddBullet :one
insert into bullets (name, weight, diameter, photo, meta, manufacturer_id)
values ($1, $2, $3, $4, $5, $6)
returning id
`
type AddBulletParams struct {
Name string `json:"name"`
Weight int32 `json:"weight"`
Diameter int32 `json:"diameter"`
Photo []byte `json:"photo"`
Meta []byte `json:"meta"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
}
func (q *Queries) AddBullet(ctx context.Context, arg AddBulletParams) (pgtype.UUID, error) {
row := q.db.QueryRow(ctx, addBullet,
arg.Name,
arg.Weight,
arg.Diameter,
arg.Photo,
arg.Meta,
arg.ManufacturerID,
)
var id pgtype.UUID
err := row.Scan(&id)
return id, err
}
const deleteBullet = `-- name: DeleteBullet :exec
DELETE
from bullets
where id = $1
`
func (q *Queries) DeleteBullet(ctx context.Context, id pgtype.UUID) error {
_, err := q.db.Exec(ctx, deleteBullet, id)
return err
}
const forPage = `-- name: ForPage :many
select bullets.id as id,
bullets.name as name,
weight,
diameter,
bullets.created_at,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from bullets
join manufacturers m on m.id = bullets.manufacturer_id
order by manufacturer_name, bullets.name desc
limit $1 offset $2
`
type ForPageParams struct {
Limit int32 `json:"limit"`
Offset int32 `json:"offset"`
}
type ForPageRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Weight int32 `json:"weight"`
Diameter int32 `json:"diameter"`
CreatedAt pgtype.Timestamp `json:"created_at"`
Meta []byte `json:"meta"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ManufacturerName string `json:"manufacturer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) ForPage(ctx context.Context, arg ForPageParams) ([]ForPageRow, error) {
rows, err := q.db.Query(ctx, forPage, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ForPageRow
for rows.Next() {
var i ForPageRow
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Weight,
&i.Diameter,
&i.CreatedAt,
&i.Meta,
&i.ManufacturerID,
&i.ManufacturerName,
&i.ManufacturerUrl,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getBulletById = `-- name: GetBulletById :one
select bullets.id as id,
bullets.name,
bullets.diameter,
bullets.weight,
bullets.meta,
bullets.photo,
bullets.created_at,
m.id as manufactuerer_id,
m.name as manufacutuer_name,
m.url as manufacturer_url
from bullets
join manufacturers m on m.id = bullets.manufacturer_id
where bullets.id = $1
`
type GetBulletByIdRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Diameter int32 `json:"diameter"`
Weight int32 `json:"weight"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
CreatedAt pgtype.Timestamp `json:"created_at"`
ManufactuererID pgtype.UUID `json:"manufactuerer_id"`
ManufacutuerName string `json:"manufacutuer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) GetBulletById(ctx context.Context, id pgtype.UUID) (GetBulletByIdRow, error) {
row := q.db.QueryRow(ctx, getBulletById, id)
var i GetBulletByIdRow
err := row.Scan(
&i.ID,
&i.Name,
&i.Diameter,
&i.Weight,
&i.Meta,
&i.Photo,
&i.CreatedAt,
&i.ManufactuererID,
&i.ManufacutuerName,
&i.ManufacturerUrl,
)
return i, err
}
const getBullets = `-- name: GetBullets :many
select bullets.id as id,
bullets.name as name,
weight,
diameter,
bullets.created_at,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from bullets
join manufacturers m on m.id = bullets.manufacturer_id
order by manufacturer_name, bullets.name desc
`
type GetBulletsRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Weight int32 `json:"weight"`
Diameter int32 `json:"diameter"`
CreatedAt pgtype.Timestamp `json:"created_at"`
Meta []byte `json:"meta"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ManufacturerName string `json:"manufacturer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) GetBullets(ctx context.Context) ([]GetBulletsRow, error) {
rows, err := q.db.Query(ctx, getBullets)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetBulletsRow
for rows.Next() {
var i GetBulletsRow
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Weight,
&i.Diameter,
&i.CreatedAt,
&i.Meta,
&i.ManufacturerID,
&i.ManufacturerName,
&i.ManufacturerUrl,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateBullet = `-- name: UpdateBullet :exec
UPDATE bullets
set name=$1,
weight=$2,
diameter=$3,
photo=$4,
meta=$5,
manufacturer_id=$6
where id = $7
`
type UpdateBulletParams struct {
Name string `json:"name"`
Weight int32 `json:"weight"`
Diameter int32 `json:"diameter"`
Photo []byte `json:"photo"`
Meta []byte `json:"meta"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ID pgtype.UUID `json:"id"`
}
func (q *Queries) UpdateBullet(ctx context.Context, arg UpdateBulletParams) error {
_, err := q.db.Exec(ctx, updateBullet,
arg.Name,
arg.Weight,
arg.Diameter,
arg.Photo,
arg.Meta,
arg.ManufacturerID,
arg.ID,
)
return err
}

View File

@@ -0,0 +1,32 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package bullets
import (
"context"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
)
type DBTX interface {
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
QueryRow(context.Context, string, ...interface{}) pgx.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
return &Queries{
db: tx,
}
}

View File

@@ -0,0 +1,27 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package bullets
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Bullet struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Weight int32 `json:"weight"`
Diameter int32 `json:"diameter"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}
type Manufacturer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Url pgtype.Text `json:"url"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}

View File

@@ -0,0 +1,73 @@
create table cartridges
(
id uuid primary key,
name varchar(255) not null,
created_at timestamp default current_timestamp not null,
meta json not null
);
create table loads
(
id uuid primary key,
cartridge_id uuid not null,
col float4 not null,
powder_id uuid not null,
powder_gr float4 not null,
primer_id uuid not null,
bullet_id uuid not null,
photo bytea not null,
created_at timestamp default current_timestamp not null,
meta json not null,
constraint loads_bullets_id_fk
foreign key (bullet_id) references bullets (id),
constraint loads_powders_id_fk
foreign key (powder_id) references powders (id),
constraint loads_primers_id_fk
foreign key (primer_id) references primers (id),
constraint loads_cartridges_id_fk
foreign key (cartridge_id) references cartridges (id)
);
create table bullets
(
id uuid primary key,
name varchar(255) not null,
weight int not null,
diameter int not null,
meta json,
photo bytea,
manufacturer_id uuid not null,
created_at timestamp default NOW() not null
);
create table manufacturers
(
id uuid primary key,
name varchar(255) not null,
url varchar(255),
created_at timestamp default NOW() not null
);
create table powders
(
id uuid primary key,
name varchar(255) not null,
meta json,
photo bytea,
manufacturer_id uuid not null,
created_at timestamp default NOW() not null,
constraint powders_manufacturers_id_fk
foreign key (manufacturer_id) references manufacturers (id)
);
create table primers
(
id uuid primary key,
name varchar(255) not null,
meta json,
photo bytea,
manufacturer_id uuid not null,
created_at timestamp default NOW() not null,
constraint primers_manufacturers_id_fk
foreign key (manufacturer_id) references manufacturers (id)
);

100
backend/models/loads.sql Normal file
View File

@@ -0,0 +1,100 @@
-- name: GetCartridgeById :one
select c.id as id, c.name, c.meta
from cartridges c
where id = $1;
-- name: GetCartridges :many
select c.id as id, c.name, c.meta
from cartridges c
order by c.name;
-- name: CreateCartridge :one
insert into cartridges (name, meta)
values ($1, $2)
returning id;
-- name: DeleteCartridge :exec
delete
from cartridges
where id = $1;
-- name: CreateLoad :one
insert into loads (cartridge_id, col, powder_id, powder_gr, primer_id, bullet_id, photo, meta)
values ($1, $2, $3, $4, $5, $6, $7, $8)
returning id;
-- name: GetLoadById :one
select l.id as id,
c.id as cartridge_id,
c.name as cartridge_name,
c.meta as cartridge_meta,
l.col,
p.id as powder_id,
p.name as powder_name,
p.meta as powder_meta,
l.powder_gr,
pr.id as primer_id,
pr.name as primer_name,
pr.meta as primer_meta
from public.loads l
join cartridges c on l.cartridge_id = c.id
join bullets b on l.bullet_id = b.id
join powders p on l.powder_id = p.id
join primers pr on l.primer_id = pr.id
where l.id = $1;
-- name: TotalLoads :one
select count(*)
from loads;
-- name: GetLoads :many
select l.id as id,
l.col,
l.powder_gr,
c.id as cartridge_id,
c.name as cartridge_name,
c.meta as cartridge_meta,
p.id as powder_id,
p.name as powder_name,
p.meta as powder_meta,
p_m.name as powder_manufacturer_name,
p_m.url as powder_manufacturer_url,
pr.id as primer_id,
pr.name as primer_name,
pr.meta as primer_meta,
pr_m.name as primer_manufacturer_name,
pr_m.url as primer_manufacturer_url,
b.id as bullet_id,
b.name as bullet_name,
b.meta as bullet_meta,
b.weight as bullet_weight,
b.diameter as bullet_diameter,
b_m.name as bullet_manufacturer_name,
b_m.url as bullet_manufacturer_url
from public.loads l
join cartridges c on l.cartridge_id = c.id
join bullets b on l.bullet_id = b.id
join manufacturers b_m on b.manufacturer_id = b_m.id
join powders p on l.powder_id = p.id
join manufacturers p_m on p.manufacturer_id = p_m.id
join primers pr on l.primer_id = pr.id
join manufacturers pr_m on pr.manufacturer_id = pr_m.id
where 1 = 1
-- Loose Search By Name
AND (CASE WHEN @search_cartridge::bool THEN lower(c.name) like lower(@cartridge) ELSE TRUE END)
AND (CASE WHEN @search_bullet::bool THEN lower(b.name) like lower(@bullet) ELSE TRUE END)
AND (CASE WHEN @search_bullet_manufacturer::bool THEN lower(b_m.name) like lower(@bullet_manufacturer) ELSE TRUE END)
AND (CASE WHEN @search_primer::bool THEN lower(pr.name) like lower(@primer) ELSE TRUE END)
AND (CASE WHEN @search_primer_manufacturer::bool THEN lower(pr_m.name) like lower(@prime_manufacturer) ELSE TRUE END)
AND (CASE WHEN @search_powder::bool THEN lower(p.name) like lower(@powder) ELSE TRUE END)
AND (CASE WHEN @search_powder_manufacturer::bool THEN lower(p_m.name) like lower(@powder_manufacturer) ELSE TRUE END)
-- Exact Search By ID
AND (CASE WHEN @search_cartridge_id::bool THEN c.id = @cartridge_id::uuid ELSE TRUE END)
AND (CASE WHEN @search_bullet_id::bool THEN b.id = @bullet_id::uuid ELSE TRUE END)
AND (CASE WHEN @search_primer_id::bool THEN pr.id = @primer_id::uuid ELSE TRUE END)
AND (CASE WHEN @search_powder_id::bool THEN p.id = @powder_id::uuid ELSE TRUE END)
order by @order_by
limit $1 offset $2;

View File

@@ -0,0 +1,32 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package loads
import (
"context"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
)
type DBTX interface {
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
QueryRow(context.Context, string, ...interface{}) pgx.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
return &Queries{
db: tx,
}
}

View File

@@ -0,0 +1,370 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: loads.sql
package loads
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createCartridge = `-- name: CreateCartridge :one
insert into cartridges (name, meta)
values ($1, $2)
returning id
`
type CreateCartridgeParams struct {
Name string `json:"name"`
Meta []byte `json:"meta"`
}
func (q *Queries) CreateCartridge(ctx context.Context, arg CreateCartridgeParams) (pgtype.UUID, error) {
row := q.db.QueryRow(ctx, createCartridge, arg.Name, arg.Meta)
var id pgtype.UUID
err := row.Scan(&id)
return id, err
}
const createLoad = `-- name: CreateLoad :one
insert into loads (cartridge_id, col, powder_id, powder_gr, primer_id, bullet_id, photo, meta)
values ($1, $2, $3, $4, $5, $6, $7, $8)
returning id
`
type CreateLoadParams struct {
CartridgeID pgtype.UUID `json:"cartridge_id"`
Col float32 `json:"col"`
PowderID pgtype.UUID `json:"powder_id"`
PowderGr float32 `json:"powder_gr"`
PrimerID pgtype.UUID `json:"primer_id"`
BulletID pgtype.UUID `json:"bullet_id"`
Photo []byte `json:"photo"`
Meta []byte `json:"meta"`
}
func (q *Queries) CreateLoad(ctx context.Context, arg CreateLoadParams) (pgtype.UUID, error) {
row := q.db.QueryRow(ctx, createLoad,
arg.CartridgeID,
arg.Col,
arg.PowderID,
arg.PowderGr,
arg.PrimerID,
arg.BulletID,
arg.Photo,
arg.Meta,
)
var id pgtype.UUID
err := row.Scan(&id)
return id, err
}
const deleteCartridge = `-- name: DeleteCartridge :exec
delete
from cartridges
where id = $1
`
func (q *Queries) DeleteCartridge(ctx context.Context, id pgtype.UUID) error {
_, err := q.db.Exec(ctx, deleteCartridge, id)
return err
}
const getCartridgeById = `-- name: GetCartridgeById :one
select c.id as id, c.name, c.meta
from cartridges c
where id = $1
`
type GetCartridgeByIdRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
}
func (q *Queries) GetCartridgeById(ctx context.Context, id pgtype.UUID) (GetCartridgeByIdRow, error) {
row := q.db.QueryRow(ctx, getCartridgeById, id)
var i GetCartridgeByIdRow
err := row.Scan(&i.ID, &i.Name, &i.Meta)
return i, err
}
const getCartridges = `-- name: GetCartridges :many
select c.id as id, c.name, c.meta
from cartridges c
order by c.name
`
type GetCartridgesRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
}
func (q *Queries) GetCartridges(ctx context.Context) ([]GetCartridgesRow, error) {
rows, err := q.db.Query(ctx, getCartridges)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetCartridgesRow
for rows.Next() {
var i GetCartridgesRow
if err := rows.Scan(&i.ID, &i.Name, &i.Meta); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getLoadById = `-- name: GetLoadById :one
select l.id as id,
c.id as cartridge_id,
c.name as cartridge_name,
c.meta as cartridge_meta,
l.col,
p.id as powder_id,
p.name as powder_name,
p.meta as powder_meta,
l.powder_gr,
pr.id as primer_id,
pr.name as primer_name,
pr.meta as primer_meta
from public.loads l
join cartridges c on l.cartridge_id = c.id
join bullets b on l.bullet_id = b.id
join powders p on l.powder_id = p.id
join primers pr on l.primer_id = pr.id
where l.id = $1
`
type GetLoadByIdRow struct {
ID pgtype.UUID `json:"id"`
CartridgeID pgtype.UUID `json:"cartridge_id"`
CartridgeName string `json:"cartridge_name"`
CartridgeMeta []byte `json:"cartridge_meta"`
Col float32 `json:"col"`
PowderID pgtype.UUID `json:"powder_id"`
PowderName string `json:"powder_name"`
PowderMeta []byte `json:"powder_meta"`
PowderGr float32 `json:"powder_gr"`
PrimerID pgtype.UUID `json:"primer_id"`
PrimerName string `json:"primer_name"`
PrimerMeta []byte `json:"primer_meta"`
}
func (q *Queries) GetLoadById(ctx context.Context, id pgtype.UUID) (GetLoadByIdRow, error) {
row := q.db.QueryRow(ctx, getLoadById, id)
var i GetLoadByIdRow
err := row.Scan(
&i.ID,
&i.CartridgeID,
&i.CartridgeName,
&i.CartridgeMeta,
&i.Col,
&i.PowderID,
&i.PowderName,
&i.PowderMeta,
&i.PowderGr,
&i.PrimerID,
&i.PrimerName,
&i.PrimerMeta,
)
return i, err
}
const getLoads = `-- name: GetLoads :many
select l.id as id,
l.col,
l.powder_gr,
c.id as cartridge_id,
c.name as cartridge_name,
c.meta as cartridge_meta,
p.id as powder_id,
p.name as powder_name,
p.meta as powder_meta,
p_m.name as powder_manufacturer_name,
p_m.url as powder_manufacturer_url,
pr.id as primer_id,
pr.name as primer_name,
pr.meta as primer_meta,
pr_m.name as primer_manufacturer_name,
pr_m.url as primer_manufacturer_url,
b.id as bullet_id,
b.name as bullet_name,
b.meta as bullet_meta,
b.weight as bullet_weight,
b.diameter as bullet_diameter,
b_m.name as bullet_manufacturer_name,
b_m.url as bullet_manufacturer_url
from public.loads l
join cartridges c on l.cartridge_id = c.id
join bullets b on l.bullet_id = b.id
join manufacturers b_m on b.manufacturer_id = b_m.id
join powders p on l.powder_id = p.id
join manufacturers p_m on p.manufacturer_id = p_m.id
join primers pr on l.primer_id = pr.id
join manufacturers pr_m on pr.manufacturer_id = pr_m.id
where 1 = 1
-- Loose Search By Name
AND (CASE WHEN $3::bool THEN lower(c.name) like lower($4) ELSE TRUE END)
AND (CASE WHEN $5::bool THEN lower(b.name) like lower($6) ELSE TRUE END)
AND (CASE WHEN $7::bool THEN lower(b_m.name) like lower($8) ELSE TRUE END)
AND (CASE WHEN $9::bool THEN lower(pr.name) like lower($10) ELSE TRUE END)
AND (CASE WHEN $11::bool THEN lower(pr_m.name) like lower($12) ELSE TRUE END)
AND (CASE WHEN $13::bool THEN lower(p.name) like lower($14) ELSE TRUE END)
AND (CASE WHEN $15::bool THEN lower(p_m.name) like lower($16) ELSE TRUE END)
-- Exact Search By ID
AND (CASE WHEN $17::bool THEN c.id = $18::uuid ELSE TRUE END)
AND (CASE WHEN $19::bool THEN b.id = $20::uuid ELSE TRUE END)
AND (CASE WHEN $21::bool THEN pr.id = $22::uuid ELSE TRUE END)
AND (CASE WHEN $23::bool THEN p.id = $24::uuid ELSE TRUE END)
order by $25
limit $1 offset $2
`
type GetLoadsParams struct {
Limit int32 `json:"limit"`
Offset int32 `json:"offset"`
SearchCartridge bool `json:"search_cartridge"`
Cartridge string `json:"cartridge"`
SearchBullet bool `json:"search_bullet"`
Bullet string `json:"bullet"`
SearchBulletManufacturer bool `json:"search_bullet_manufacturer"`
BulletManufacturer string `json:"bullet_manufacturer"`
SearchPrimer bool `json:"search_primer"`
Primer string `json:"primer"`
SearchPrimerManufacturer bool `json:"search_primer_manufacturer"`
PrimeManufacturer string `json:"prime_manufacturer"`
SearchPowder bool `json:"search_powder"`
Powder string `json:"powder"`
SearchPowderManufacturer bool `json:"search_powder_manufacturer"`
PowderManufacturer string `json:"powder_manufacturer"`
SearchCartridgeID bool `json:"search_cartridge_id"`
CartridgeID pgtype.UUID `json:"cartridge_id"`
SearchBulletID bool `json:"search_bullet_id"`
BulletID pgtype.UUID `json:"bullet_id"`
SearchPrimerID bool `json:"search_primer_id"`
PrimerID pgtype.UUID `json:"primer_id"`
SearchPowderID bool `json:"search_powder_id"`
PowderID pgtype.UUID `json:"powder_id"`
OrderBy interface{} `json:"order_by"`
}
type GetLoadsRow struct {
ID pgtype.UUID `json:"id"`
Col float32 `json:"col"`
PowderGr float32 `json:"powder_gr"`
CartridgeID pgtype.UUID `json:"cartridge_id"`
CartridgeName string `json:"cartridge_name"`
CartridgeMeta []byte `json:"cartridge_meta"`
PowderID pgtype.UUID `json:"powder_id"`
PowderName string `json:"powder_name"`
PowderMeta []byte `json:"powder_meta"`
PowderManufacturerName string `json:"powder_manufacturer_name"`
PowderManufacturerUrl pgtype.Text `json:"powder_manufacturer_url"`
PrimerID pgtype.UUID `json:"primer_id"`
PrimerName string `json:"primer_name"`
PrimerMeta []byte `json:"primer_meta"`
PrimerManufacturerName string `json:"primer_manufacturer_name"`
PrimerManufacturerUrl pgtype.Text `json:"primer_manufacturer_url"`
BulletID pgtype.UUID `json:"bullet_id"`
BulletName string `json:"bullet_name"`
BulletMeta []byte `json:"bullet_meta"`
BulletWeight int32 `json:"bullet_weight"`
BulletDiameter int32 `json:"bullet_diameter"`
BulletManufacturerName string `json:"bullet_manufacturer_name"`
BulletManufacturerUrl pgtype.Text `json:"bullet_manufacturer_url"`
}
func (q *Queries) GetLoads(ctx context.Context, arg GetLoadsParams) ([]GetLoadsRow, error) {
rows, err := q.db.Query(ctx, getLoads,
arg.Limit,
arg.Offset,
arg.SearchCartridge,
arg.Cartridge,
arg.SearchBullet,
arg.Bullet,
arg.SearchBulletManufacturer,
arg.BulletManufacturer,
arg.SearchPrimer,
arg.Primer,
arg.SearchPrimerManufacturer,
arg.PrimeManufacturer,
arg.SearchPowder,
arg.Powder,
arg.SearchPowderManufacturer,
arg.PowderManufacturer,
arg.SearchCartridgeID,
arg.CartridgeID,
arg.SearchBulletID,
arg.BulletID,
arg.SearchPrimerID,
arg.PrimerID,
arg.SearchPowderID,
arg.PowderID,
arg.OrderBy,
)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetLoadsRow
for rows.Next() {
var i GetLoadsRow
if err := rows.Scan(
&i.ID,
&i.Col,
&i.PowderGr,
&i.CartridgeID,
&i.CartridgeName,
&i.CartridgeMeta,
&i.PowderID,
&i.PowderName,
&i.PowderMeta,
&i.PowderManufacturerName,
&i.PowderManufacturerUrl,
&i.PrimerID,
&i.PrimerName,
&i.PrimerMeta,
&i.PrimerManufacturerName,
&i.PrimerManufacturerUrl,
&i.BulletID,
&i.BulletName,
&i.BulletMeta,
&i.BulletWeight,
&i.BulletDiameter,
&i.BulletManufacturerName,
&i.BulletManufacturerUrl,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const totalLoads = `-- name: TotalLoads :one
select count(*)
from loads
`
func (q *Queries) TotalLoads(ctx context.Context) (int64, error) {
row := q.db.QueryRow(ctx, totalLoads)
var count int64
err := row.Scan(&count)
return count, err
}

View File

@@ -0,0 +1,65 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package loads
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Bullet struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Weight int32 `json:"weight"`
Diameter int32 `json:"diameter"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}
type Cartridge struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
CreatedAt pgtype.Timestamp `json:"created_at"`
Meta []byte `json:"meta"`
}
type Load struct {
ID pgtype.UUID `json:"id"`
CartridgeID pgtype.UUID `json:"cartridge_id"`
Col float32 `json:"col"`
PowderID pgtype.UUID `json:"powder_id"`
PowderGr float32 `json:"powder_gr"`
PrimerID pgtype.UUID `json:"primer_id"`
BulletID pgtype.UUID `json:"bullet_id"`
Photo []byte `json:"photo"`
CreatedAt pgtype.Timestamp `json:"created_at"`
Meta []byte `json:"meta"`
}
type Manufacturer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Url pgtype.Text `json:"url"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}
type Powder struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}
type Primer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}

View File

@@ -0,0 +1,7 @@
create table manufacturers
(
id uuid primary key ,
name varchar(255) not null,
url varchar(255),
created_at timestamp default NOW() not null
);

View File

@@ -0,0 +1,23 @@
-- name: GetAll :many
select id, name, url, created_at
from manufacturers
order by name;
-- name: CreateManufacturer :exec
insert into manufacturers (id, name, url) values ($1, $2, $3);
-- name: UpdateManufacturer :exec
update manufacturers
set name=$1,
url=$2
where id = $3;
-- name: GetById :one
select id, name, url, created_at
from manufacturers
where id = $1;
-- name: DeleteById :exec
delete
from manufacturers
where id = $1;

View File

@@ -0,0 +1,32 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package manufacturer
import (
"context"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
)
type DBTX interface {
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
QueryRow(context.Context, string, ...interface{}) pgx.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
return &Queries{
db: tx,
}
}

View File

@@ -0,0 +1,105 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: manufacturer.sql
package manufacturer
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createManufacturer = `-- name: CreateManufacturer :exec
insert into manufacturers (id, name, url) values ($1, $2, $3)
`
type CreateManufacturerParams struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Url pgtype.Text `json:"url"`
}
func (q *Queries) CreateManufacturer(ctx context.Context, arg CreateManufacturerParams) error {
_, err := q.db.Exec(ctx, createManufacturer, arg.ID, arg.Name, arg.Url)
return err
}
const deleteById = `-- name: DeleteById :exec
delete
from manufacturers
where id = $1
`
func (q *Queries) DeleteById(ctx context.Context, id pgtype.UUID) error {
_, err := q.db.Exec(ctx, deleteById, id)
return err
}
const getAll = `-- name: GetAll :many
select id, name, url, created_at
from manufacturers
order by name
`
func (q *Queries) GetAll(ctx context.Context) ([]Manufacturer, error) {
rows, err := q.db.Query(ctx, getAll)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Manufacturer
for rows.Next() {
var i Manufacturer
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Url,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getById = `-- name: GetById :one
select id, name, url, created_at
from manufacturers
where id = $1
`
func (q *Queries) GetById(ctx context.Context, id pgtype.UUID) (Manufacturer, error) {
row := q.db.QueryRow(ctx, getById, id)
var i Manufacturer
err := row.Scan(
&i.ID,
&i.Name,
&i.Url,
&i.CreatedAt,
)
return i, err
}
const updateManufacturer = `-- name: UpdateManufacturer :exec
update manufacturers
set name=$1,
url=$2
where id = $3
`
type UpdateManufacturerParams struct {
Name string `json:"name"`
Url pgtype.Text `json:"url"`
ID pgtype.UUID `json:"id"`
}
func (q *Queries) UpdateManufacturer(ctx context.Context, arg UpdateManufacturerParams) error {
_, err := q.db.Exec(ctx, updateManufacturer, arg.Name, arg.Url, arg.ID)
return err
}

View File

@@ -0,0 +1,16 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package manufacturer
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Manufacturer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Url pgtype.Text `json:"url"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}

View File

@@ -0,0 +1,19 @@
create table powders
(
id uuid primary key,
name varchar(255) not null,
meta json,
photo bytea,
manufacturer_id uuid not null,
created_at timestamp default NOW() not null,
constraint powders_manufacturers_id_fk
foreign key (manufacturer_id) references manufacturers (id)
);
create table manufacturers
(
id uuid primary key ,
name varchar(255) not null,
url varchar(255),
created_at timestamp default NOW() not null
);

41
backend/models/powder.sql Normal file
View File

@@ -0,0 +1,41 @@
-- name: GetPowderById :one
select powders.id as id,
powders.name as name,
powders.created_at,
powders.photo,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from powders
join manufacturers m on m.id = powders.manufacturer_id
where powders.id = $1;
-- name: GetPowders :many
select powders.id as id,
powders.name as name,
powders.created_at,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from powders
join manufacturers m on m.id = powders.manufacturer_id
order by powders.name desc;
-- name: DeletePowder :exec
DELETE
FROM powders
WHERE id = $1;
-- name: InsertPowder :exec
insert into powders (id, name, manufacturer_id, meta, photo)
values ($1, $2, $3, $4, $5);
-- name: UpdatePowder :exec
update powders
set name = $1,
manufacturer_id = $2,
meta = $3,
photo = $4
where id = $5;

View File

@@ -0,0 +1,32 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package powder
import (
"context"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
)
type DBTX interface {
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
QueryRow(context.Context, string, ...interface{}) pgx.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
return &Queries{
db: tx,
}
}

View File

@@ -0,0 +1,25 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package powder
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Manufacturer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Url pgtype.Text `json:"url"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}
type Powder struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}

View File

@@ -0,0 +1,167 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: powder.sql
package powder
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const deletePowder = `-- name: DeletePowder :exec
DELETE
FROM powders
WHERE id = $1
`
func (q *Queries) DeletePowder(ctx context.Context, id pgtype.UUID) error {
_, err := q.db.Exec(ctx, deletePowder, id)
return err
}
const getPowderById = `-- name: GetPowderById :one
select powders.id as id,
powders.name as name,
powders.created_at,
powders.photo,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from powders
join manufacturers m on m.id = powders.manufacturer_id
where powders.id = $1
`
type GetPowderByIdRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
CreatedAt pgtype.Timestamp `json:"created_at"`
Photo []byte `json:"photo"`
Meta []byte `json:"meta"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ManufacturerName string `json:"manufacturer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) GetPowderById(ctx context.Context, id pgtype.UUID) (GetPowderByIdRow, error) {
row := q.db.QueryRow(ctx, getPowderById, id)
var i GetPowderByIdRow
err := row.Scan(
&i.ID,
&i.Name,
&i.CreatedAt,
&i.Photo,
&i.Meta,
&i.ManufacturerID,
&i.ManufacturerName,
&i.ManufacturerUrl,
)
return i, err
}
const getPowders = `-- name: GetPowders :many
select powders.id as id,
powders.name as name,
powders.created_at,
meta,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
from powders
join manufacturers m on m.id = powders.manufacturer_id
order by powders.name desc
`
type GetPowdersRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
CreatedAt pgtype.Timestamp `json:"created_at"`
Meta []byte `json:"meta"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ManufacturerName string `json:"manufacturer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) GetPowders(ctx context.Context) ([]GetPowdersRow, error) {
rows, err := q.db.Query(ctx, getPowders)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetPowdersRow
for rows.Next() {
var i GetPowdersRow
if err := rows.Scan(
&i.ID,
&i.Name,
&i.CreatedAt,
&i.Meta,
&i.ManufacturerID,
&i.ManufacturerName,
&i.ManufacturerUrl,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const insertPowder = `-- name: InsertPowder :exec
insert into powders (id, name, manufacturer_id, meta, photo)
values ($1, $2, $3, $4, $5)
`
type InsertPowderParams struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
}
func (q *Queries) InsertPowder(ctx context.Context, arg InsertPowderParams) error {
_, err := q.db.Exec(ctx, insertPowder,
arg.ID,
arg.Name,
arg.ManufacturerID,
arg.Meta,
arg.Photo,
)
return err
}
const updatePowder = `-- name: UpdatePowder :exec
update powders
set name = $1,
manufacturer_id = $2,
meta = $3,
photo = $4
where id = $5
`
type UpdatePowderParams struct {
Name string `json:"name"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ID pgtype.UUID `json:"id"`
}
func (q *Queries) UpdatePowder(ctx context.Context, arg UpdatePowderParams) error {
_, err := q.db.Exec(ctx, updatePowder,
arg.Name,
arg.ManufacturerID,
arg.Meta,
arg.Photo,
arg.ID,
)
return err
}

View File

@@ -0,0 +1,19 @@
create table primers
(
id uuid primary key,
name varchar(255) not null,
meta json,
photo bytea,
manufacturer_id uuid not null,
created_at timestamp default NOW() not null,
constraint primers_manufacturers_id_fk
foreign key (manufacturer_id) references manufacturers (id)
);
create table manufacturers
(
id uuid primary key ,
name varchar(255) not null,
url varchar(255),
created_at timestamp default NOW() not null
);

View File

@@ -0,0 +1,41 @@
-- name: GetPrimers :many
SELECT primers.id as id,
primers.name as name,
primers.meta as meta,
primers.created_at as created_at,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
FROM primers
join manufacturers m on m.id = primers.manufacturer_id
ORDER BY primers.name desc;
-- name: GetPrimerById :one
SELECT primers.id as id,
primers.name as name,
primers.meta as meta,
primers.photo as photo,
primers.created_at as created_at,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
FROM primers
join manufacturers m on m.id = primers.manufacturer_id
WHERE primers.id = $1;
-- name: InsertPrimer :exec
INSERT INTO primers (id, name, manufacturer_id, meta, photo)
VALUES ($1, $2, $3, $4, $5);
-- name: DeletePrimer :exec
DELETE
FROM primers
WHERE id = $1;
-- name: UpdatePrimer :exec
UPDATE primers
SET name = $1,
manufacturer_id = $2,
meta = $3,
photo = $4
WHERE id = $5;

View File

@@ -0,0 +1,32 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package primers
import (
"context"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
)
type DBTX interface {
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
QueryRow(context.Context, string, ...interface{}) pgx.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx pgx.Tx) *Queries {
return &Queries{
db: tx,
}
}

View File

@@ -0,0 +1,25 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
package primers
import (
"github.com/jackc/pgx/v5/pgtype"
)
type Manufacturer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Url pgtype.Text `json:"url"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}
type Primer struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
CreatedAt pgtype.Timestamp `json:"created_at"`
}

View File

@@ -0,0 +1,167 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: primers.sql
package primers
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const deletePrimer = `-- name: DeletePrimer :exec
DELETE
FROM primers
WHERE id = $1
`
func (q *Queries) DeletePrimer(ctx context.Context, id pgtype.UUID) error {
_, err := q.db.Exec(ctx, deletePrimer, id)
return err
}
const getPrimerById = `-- name: GetPrimerById :one
SELECT primers.id as id,
primers.name as name,
primers.meta as meta,
primers.photo as photo,
primers.created_at as created_at,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
FROM primers
join manufacturers m on m.id = primers.manufacturer_id
WHERE primers.id = $1
`
type GetPrimerByIdRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
CreatedAt pgtype.Timestamp `json:"created_at"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ManufacturerName string `json:"manufacturer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) GetPrimerById(ctx context.Context, id pgtype.UUID) (GetPrimerByIdRow, error) {
row := q.db.QueryRow(ctx, getPrimerById, id)
var i GetPrimerByIdRow
err := row.Scan(
&i.ID,
&i.Name,
&i.Meta,
&i.Photo,
&i.CreatedAt,
&i.ManufacturerID,
&i.ManufacturerName,
&i.ManufacturerUrl,
)
return i, err
}
const getPrimers = `-- name: GetPrimers :many
SELECT primers.id as id,
primers.name as name,
primers.meta as meta,
primers.created_at as created_at,
m.id as manufacturer_id,
m.name as manufacturer_name,
m.url as manufacturer_url
FROM primers
join manufacturers m on m.id = primers.manufacturer_id
ORDER BY primers.name desc
`
type GetPrimersRow struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Meta []byte `json:"meta"`
CreatedAt pgtype.Timestamp `json:"created_at"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
ManufacturerName string `json:"manufacturer_name"`
ManufacturerUrl pgtype.Text `json:"manufacturer_url"`
}
func (q *Queries) GetPrimers(ctx context.Context) ([]GetPrimersRow, error) {
rows, err := q.db.Query(ctx, getPrimers)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetPrimersRow
for rows.Next() {
var i GetPrimersRow
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Meta,
&i.CreatedAt,
&i.ManufacturerID,
&i.ManufacturerName,
&i.ManufacturerUrl,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const insertPrimer = `-- name: InsertPrimer :exec
INSERT INTO primers (id, name, manufacturer_id, meta, photo)
VALUES ($1, $2, $3, $4, $5)
`
type InsertPrimerParams struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
}
func (q *Queries) InsertPrimer(ctx context.Context, arg InsertPrimerParams) error {
_, err := q.db.Exec(ctx, insertPrimer,
arg.ID,
arg.Name,
arg.ManufacturerID,
arg.Meta,
arg.Photo,
)
return err
}
const updatePrimer = `-- name: UpdatePrimer :exec
UPDATE primers
SET name = $1,
manufacturer_id = $2,
meta = $3,
photo = $4
WHERE id = $5
`
type UpdatePrimerParams struct {
Name string `json:"name"`
ManufacturerID pgtype.UUID `json:"manufacturer_id"`
Meta []byte `json:"meta"`
Photo []byte `json:"photo"`
ID pgtype.UUID `json:"id"`
}
func (q *Queries) UpdatePrimer(ctx context.Context, arg UpdatePrimerParams) error {
_, err := q.db.Exec(ctx, updatePrimer,
arg.Name,
arg.ManufacturerID,
arg.Meta,
arg.Photo,
arg.ID,
)
return err
}

47
backend/models/sqlc.yaml Normal file
View File

@@ -0,0 +1,47 @@
version: "2"
sql:
- schema: "bullets-schema.sql"
engine: "postgresql"
queries: "bullets.sql"
gen:
go:
package: "bullets"
out: "bullets"
emit_json_tags: true
sql_package: "pgx/v5"
- schema: "manufacturer-schema.sql"
engine: "postgresql"
queries: "manufacturer.sql"
gen:
go:
package: "manufacturer"
out: "manufacturer"
emit_json_tags: true
sql_package: "pgx/v5"
- schema: "primers-schema.sql"
engine: "postgresql"
queries: "primers.sql"
gen:
go:
package: "primers"
out: "primers"
emit_json_tags: true
sql_package: "pgx/v5"
- schema: "powder-schema.sql"
engine: "postgresql"
queries: "powder.sql"
gen:
go:
package: "powder"
out: "powder"
emit_json_tags: true
sql_package: "pgx/v5"
- schema: "loads-schema.sql"
engine: "postgresql"
queries: "loads.sql"
gen:
go:
package: "loads"
out: "loads"
emit_json_tags: true
sql_package: "pgx/v5"