• Add full multi-table schema for collections with normalized design (collections, collection_templates, collection_items, collection_item_versions) • Implement collection detection and processing in enhancement pipeline for .insertr-add elements • Add template extraction and storage from existing HTML children with multi-variant support • Enable collection reconstruction from database on server restart with proper DOM rebuilding • Extend ContentClient interface with collection operations and full database integration • Update enhance command to use engine.DatabaseClient for collection persistence support
218 lines
5.8 KiB
Go
218 lines
5.8 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.30.0
|
|
// source: collection_templates.sql
|
|
|
|
package sqlite
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
const createCollectionTemplate = `-- name: CreateCollectionTemplate :one
|
|
INSERT INTO collection_templates (collection_id, site_id, name, html_template, is_default)
|
|
VALUES (?1, ?2, ?3, ?4, ?5)
|
|
RETURNING template_id, collection_id, site_id, name, html_template, is_default, created_at
|
|
`
|
|
|
|
type CreateCollectionTemplateParams struct {
|
|
CollectionID string `json:"collection_id"`
|
|
SiteID string `json:"site_id"`
|
|
Name string `json:"name"`
|
|
HtmlTemplate string `json:"html_template"`
|
|
IsDefault int64 `json:"is_default"`
|
|
}
|
|
|
|
func (q *Queries) CreateCollectionTemplate(ctx context.Context, arg CreateCollectionTemplateParams) (CollectionTemplate, error) {
|
|
row := q.db.QueryRowContext(ctx, createCollectionTemplate,
|
|
arg.CollectionID,
|
|
arg.SiteID,
|
|
arg.Name,
|
|
arg.HtmlTemplate,
|
|
arg.IsDefault,
|
|
)
|
|
var i CollectionTemplate
|
|
err := row.Scan(
|
|
&i.TemplateID,
|
|
&i.CollectionID,
|
|
&i.SiteID,
|
|
&i.Name,
|
|
&i.HtmlTemplate,
|
|
&i.IsDefault,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const deleteCollectionTemplate = `-- name: DeleteCollectionTemplate :exec
|
|
DELETE FROM collection_templates
|
|
WHERE template_id = ?1
|
|
`
|
|
|
|
func (q *Queries) DeleteCollectionTemplate(ctx context.Context, templateID int64) error {
|
|
_, err := q.db.ExecContext(ctx, deleteCollectionTemplate, templateID)
|
|
return err
|
|
}
|
|
|
|
const deleteCollectionTemplates = `-- name: DeleteCollectionTemplates :exec
|
|
DELETE FROM collection_templates
|
|
WHERE collection_id = ?1 AND site_id = ?2
|
|
`
|
|
|
|
type DeleteCollectionTemplatesParams struct {
|
|
CollectionID string `json:"collection_id"`
|
|
SiteID string `json:"site_id"`
|
|
}
|
|
|
|
func (q *Queries) DeleteCollectionTemplates(ctx context.Context, arg DeleteCollectionTemplatesParams) error {
|
|
_, err := q.db.ExecContext(ctx, deleteCollectionTemplates, arg.CollectionID, arg.SiteID)
|
|
return err
|
|
}
|
|
|
|
const getCollectionTemplate = `-- name: GetCollectionTemplate :one
|
|
|
|
SELECT template_id, collection_id, site_id, name, html_template, is_default, created_at
|
|
FROM collection_templates
|
|
WHERE template_id = ?1
|
|
`
|
|
|
|
// Collection templates table queries
|
|
func (q *Queries) GetCollectionTemplate(ctx context.Context, templateID int64) (CollectionTemplate, error) {
|
|
row := q.db.QueryRowContext(ctx, getCollectionTemplate, templateID)
|
|
var i CollectionTemplate
|
|
err := row.Scan(
|
|
&i.TemplateID,
|
|
&i.CollectionID,
|
|
&i.SiteID,
|
|
&i.Name,
|
|
&i.HtmlTemplate,
|
|
&i.IsDefault,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getCollectionTemplates = `-- name: GetCollectionTemplates :many
|
|
SELECT template_id, collection_id, site_id, name, html_template, is_default, created_at
|
|
FROM collection_templates
|
|
WHERE collection_id = ?1 AND site_id = ?2
|
|
ORDER BY is_default DESC, created_at ASC
|
|
`
|
|
|
|
type GetCollectionTemplatesParams struct {
|
|
CollectionID string `json:"collection_id"`
|
|
SiteID string `json:"site_id"`
|
|
}
|
|
|
|
func (q *Queries) GetCollectionTemplates(ctx context.Context, arg GetCollectionTemplatesParams) ([]CollectionTemplate, error) {
|
|
rows, err := q.db.QueryContext(ctx, getCollectionTemplates, arg.CollectionID, arg.SiteID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []CollectionTemplate
|
|
for rows.Next() {
|
|
var i CollectionTemplate
|
|
if err := rows.Scan(
|
|
&i.TemplateID,
|
|
&i.CollectionID,
|
|
&i.SiteID,
|
|
&i.Name,
|
|
&i.HtmlTemplate,
|
|
&i.IsDefault,
|
|
&i.CreatedAt,
|
|
); 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 getDefaultTemplate = `-- name: GetDefaultTemplate :one
|
|
SELECT template_id, collection_id, site_id, name, html_template, is_default, created_at
|
|
FROM collection_templates
|
|
WHERE collection_id = ?1 AND site_id = ?2 AND is_default = TRUE
|
|
LIMIT 1
|
|
`
|
|
|
|
type GetDefaultTemplateParams struct {
|
|
CollectionID string `json:"collection_id"`
|
|
SiteID string `json:"site_id"`
|
|
}
|
|
|
|
func (q *Queries) GetDefaultTemplate(ctx context.Context, arg GetDefaultTemplateParams) (CollectionTemplate, error) {
|
|
row := q.db.QueryRowContext(ctx, getDefaultTemplate, arg.CollectionID, arg.SiteID)
|
|
var i CollectionTemplate
|
|
err := row.Scan(
|
|
&i.TemplateID,
|
|
&i.CollectionID,
|
|
&i.SiteID,
|
|
&i.Name,
|
|
&i.HtmlTemplate,
|
|
&i.IsDefault,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const setTemplateAsDefault = `-- name: SetTemplateAsDefault :exec
|
|
UPDATE collection_templates
|
|
SET is_default = CASE
|
|
WHEN template_id = ?1 THEN TRUE
|
|
ELSE FALSE
|
|
END
|
|
WHERE collection_id = ?2 AND site_id = ?3
|
|
`
|
|
|
|
type SetTemplateAsDefaultParams struct {
|
|
TemplateID int64 `json:"template_id"`
|
|
CollectionID string `json:"collection_id"`
|
|
SiteID string `json:"site_id"`
|
|
}
|
|
|
|
func (q *Queries) SetTemplateAsDefault(ctx context.Context, arg SetTemplateAsDefaultParams) error {
|
|
_, err := q.db.ExecContext(ctx, setTemplateAsDefault, arg.TemplateID, arg.CollectionID, arg.SiteID)
|
|
return err
|
|
}
|
|
|
|
const updateCollectionTemplate = `-- name: UpdateCollectionTemplate :one
|
|
UPDATE collection_templates
|
|
SET name = ?1, html_template = ?2, is_default = ?3
|
|
WHERE template_id = ?4
|
|
RETURNING template_id, collection_id, site_id, name, html_template, is_default, created_at
|
|
`
|
|
|
|
type UpdateCollectionTemplateParams struct {
|
|
Name string `json:"name"`
|
|
HtmlTemplate string `json:"html_template"`
|
|
IsDefault int64 `json:"is_default"`
|
|
TemplateID int64 `json:"template_id"`
|
|
}
|
|
|
|
func (q *Queries) UpdateCollectionTemplate(ctx context.Context, arg UpdateCollectionTemplateParams) (CollectionTemplate, error) {
|
|
row := q.db.QueryRowContext(ctx, updateCollectionTemplate,
|
|
arg.Name,
|
|
arg.HtmlTemplate,
|
|
arg.IsDefault,
|
|
arg.TemplateID,
|
|
)
|
|
var i CollectionTemplate
|
|
err := row.Scan(
|
|
&i.TemplateID,
|
|
&i.CollectionID,
|
|
&i.SiteID,
|
|
&i.Name,
|
|
&i.HtmlTemplate,
|
|
&i.IsDefault,
|
|
&i.CreatedAt,
|
|
)
|
|
return i, err
|
|
}
|