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.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
-- 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 = sqlc.arg(tenant_id) AND r.image_asset_id = sqlc.arg(image_asset_id);
|
||||
|
||||
-- name: CountImageReferences :one
|
||||
SELECT COUNT(*)::INT AS total
|
||||
FROM image_asset_references
|
||||
WHERE tenant_id = sqlc.arg(tenant_id) AND image_asset_id = sqlc.arg(image_asset_id);
|
||||
|
||||
-- name: UpsertImageReference :exec
|
||||
INSERT INTO image_asset_references (tenant_id, image_asset_id, article_id, ref_scope)
|
||||
VALUES (sqlc.arg(tenant_id), sqlc.arg(image_asset_id), sqlc.arg(article_id), sqlc.arg(ref_scope))
|
||||
ON CONFLICT (image_asset_id, article_id, ref_scope) DO UPDATE SET updated_at = NOW();
|
||||
|
||||
-- name: DeleteImageReferencesByArticle :exec
|
||||
DELETE FROM image_asset_references
|
||||
WHERE tenant_id = sqlc.arg(tenant_id) AND article_id = sqlc.arg(article_id);
|
||||
|
||||
-- name: DeleteImageReferencesByArticleScope :exec
|
||||
DELETE FROM image_asset_references
|
||||
WHERE tenant_id = sqlc.arg(tenant_id) AND article_id = sqlc.arg(article_id) AND ref_scope = sqlc.arg(ref_scope);
|
||||
|
||||
-- name: ListImageReferenceArticles :many
|
||||
SELECT DISTINCT r.article_id, r.ref_scope
|
||||
FROM image_asset_references r
|
||||
WHERE r.tenant_id = sqlc.arg(tenant_id) AND r.image_asset_id = sqlc.arg(image_asset_id);
|
||||
Reference in New Issue
Block a user