Files
geo/server/internal/tenant/repository/generated/image_reference.sql.go
T
root 27389164b0 feat: add image management functionality
- Implemented image folder repository with CRUD operations.
- Added image reference repository for managing image references to articles.
- Created image repository for handling image assets, including listing, inserting, updating, and deleting images.
- Introduced image usage repository to track storage usage and quotas for tenants.
- Added SQL queries for image assets, folders, references, and usage.
- Developed image handler for HTTP endpoints to manage images and folders.
- Created database migration scripts for image-related tables and structures.
2026-04-16 20:40:41 +08:00

168 lines
4.8 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: image_reference.sql
package generated
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const countImageReferences = `-- name: CountImageReferences :one
SELECT COUNT(*)::INT AS total
FROM image_asset_references
WHERE tenant_id = $1 AND image_asset_id = $2
`
type CountImageReferencesParams struct {
TenantID int64 `json:"tenant_id"`
ImageAssetID int64 `json:"image_asset_id"`
}
func (q *Queries) CountImageReferences(ctx context.Context, arg CountImageReferencesParams) (int32, error) {
row := q.db.QueryRow(ctx, countImageReferences, arg.TenantID, arg.ImageAssetID)
var total int32
err := row.Scan(&total)
return total, err
}
const deleteImageReferencesByArticle = `-- name: DeleteImageReferencesByArticle :exec
DELETE FROM image_asset_references
WHERE tenant_id = $1 AND article_id = $2
`
type DeleteImageReferencesByArticleParams struct {
TenantID int64 `json:"tenant_id"`
ArticleID int64 `json:"article_id"`
}
func (q *Queries) DeleteImageReferencesByArticle(ctx context.Context, arg DeleteImageReferencesByArticleParams) error {
_, err := q.db.Exec(ctx, deleteImageReferencesByArticle, arg.TenantID, arg.ArticleID)
return err
}
const deleteImageReferencesByArticleScope = `-- name: DeleteImageReferencesByArticleScope :exec
DELETE FROM image_asset_references
WHERE tenant_id = $1 AND article_id = $2 AND ref_scope = $3
`
type DeleteImageReferencesByArticleScopeParams struct {
TenantID int64 `json:"tenant_id"`
ArticleID int64 `json:"article_id"`
RefScope string `json:"ref_scope"`
}
func (q *Queries) DeleteImageReferencesByArticleScope(ctx context.Context, arg DeleteImageReferencesByArticleScopeParams) error {
_, err := q.db.Exec(ctx, deleteImageReferencesByArticleScope, arg.TenantID, arg.ArticleID, arg.RefScope)
return err
}
const listImageReferenceArticles = `-- name: ListImageReferenceArticles :many
SELECT DISTINCT r.article_id, r.ref_scope
FROM image_asset_references r
WHERE r.tenant_id = $1 AND r.image_asset_id = $2
`
type ListImageReferenceArticlesParams struct {
TenantID int64 `json:"tenant_id"`
ImageAssetID int64 `json:"image_asset_id"`
}
type ListImageReferenceArticlesRow struct {
ArticleID int64 `json:"article_id"`
RefScope string `json:"ref_scope"`
}
func (q *Queries) ListImageReferenceArticles(ctx context.Context, arg ListImageReferenceArticlesParams) ([]ListImageReferenceArticlesRow, error) {
rows, err := q.db.Query(ctx, listImageReferenceArticles, arg.TenantID, arg.ImageAssetID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListImageReferenceArticlesRow
for rows.Next() {
var i ListImageReferenceArticlesRow
if err := rows.Scan(&i.ArticleID, &i.RefScope); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listImageReferences = `-- name: ListImageReferences :many
SELECT r.id, r.tenant_id, r.image_asset_id, r.article_id, r.ref_scope, r.created_at
FROM image_asset_references r
WHERE r.tenant_id = $1 AND r.image_asset_id = $2
`
type ListImageReferencesParams struct {
TenantID int64 `json:"tenant_id"`
ImageAssetID int64 `json:"image_asset_id"`
}
type ListImageReferencesRow struct {
ID int64 `json:"id"`
TenantID int64 `json:"tenant_id"`
ImageAssetID int64 `json:"image_asset_id"`
ArticleID int64 `json:"article_id"`
RefScope string `json:"ref_scope"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
func (q *Queries) ListImageReferences(ctx context.Context, arg ListImageReferencesParams) ([]ListImageReferencesRow, error) {
rows, err := q.db.Query(ctx, listImageReferences, arg.TenantID, arg.ImageAssetID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListImageReferencesRow
for rows.Next() {
var i ListImageReferencesRow
if err := rows.Scan(
&i.ID,
&i.TenantID,
&i.ImageAssetID,
&i.ArticleID,
&i.RefScope,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const upsertImageReference = `-- name: UpsertImageReference :exec
INSERT INTO image_asset_references (tenant_id, image_asset_id, article_id, ref_scope)
VALUES ($1, $2, $3, $4)
ON CONFLICT (image_asset_id, article_id, ref_scope) DO UPDATE SET updated_at = NOW()
`
type UpsertImageReferenceParams struct {
TenantID int64 `json:"tenant_id"`
ImageAssetID int64 `json:"image_asset_id"`
ArticleID int64 `json:"article_id"`
RefScope string `json:"ref_scope"`
}
func (q *Queries) UpsertImageReference(ctx context.Context, arg UpsertImageReferenceParams) error {
_, err := q.db.Exec(ctx, upsertImageReference,
arg.TenantID,
arg.ImageAssetID,
arg.ArticleID,
arg.RefScope,
)
return err
}