This commit is contained in:
2025-01-31 18:08:53 +01:00
parent 5ad94078ed
commit f34bbe0602
36 changed files with 424 additions and 30 deletions
+19
View File
@@ -0,0 +1,19 @@
-- description: Add set tags
BEGIN TRANSACTION;
-- Create a table to define each set tags: an id and a name
CREATE TABLE "bricktracker_metadata_tags" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
PRIMARY KEY("id")
);
-- Create a table for the set tags
CREATE TABLE "bricktracker_set_tags" (
"id" TEXT NOT NULL,
PRIMARY KEY("id"),
FOREIGN KEY("id") REFERENCES "bricktracker_sets"("id")
);
COMMIT;
+2
View File
@@ -1,12 +1,14 @@
BEGIN transaction;
DROP TABLE IF EXISTS "bricktracker_metadata_statuses";
DROP TABLE IF EXISTS "bricktracker_metadata_tags";
DROP TABLE IF EXISTS "bricktracker_minifigures";
DROP TABLE IF EXISTS "bricktracker_parts";
DROP TABLE IF EXISTS "bricktracker_sets";
DROP TABLE IF EXISTS "bricktracker_set_checkboxes";
DROP TABLE IF EXISTS "bricktracker_set_statuses";
DROP TABLE IF EXISTS "bricktracker_set_storages";
DROP TABLE IF EXISTS "bricktracker_set_tags";
DROP TABLE IF EXISTS "bricktracker_wishes";
DROP TABLE IF EXISTS "inventory";
DROP TABLE IF EXISTS "inventory_old";
+3
View File
@@ -12,6 +12,9 @@ SELECT
{% block owners %}
{% if owners %}{{ owners }},{% endif %}
{% endblock %}
{% block tags %}
{% if tags %}{{ tags }},{% endif %}
{% endblock %}
{% block statuses %}
{% if statuses %}{{ statuses }},{% endif %}
{% endblock %}
+5
View File
@@ -23,6 +23,11 @@ LEFT JOIN "bricktracker_set_statuses"
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_statuses"."id"
{% endif %}
{% if tags %}
LEFT JOIN "bricktracker_set_tags"
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_tags"."id"
{% endif %}
-- LEFT JOIN + SELECT to avoid messing the total
LEFT JOIN (
SELECT
+3
View File
@@ -12,6 +12,9 @@ WHERE "bricktracker_set_owners"."id" IS NOT DISTINCT FROM '{{ id }}';
DELETE FROM "bricktracker_set_statuses"
WHERE "bricktracker_set_statuses"."id" IS NOT DISTINCT FROM '{{ id }}';
DELETE FROM "bricktracker_set_tags"
WHERE "bricktracker_set_tags"."id" IS NOT DISTINCT FROM '{{ id }}';
DELETE FROM "bricktracker_minifigures"
WHERE "bricktracker_minifigures"."id" IS NOT DISTINCT FROM '{{ id }}';
@@ -0,0 +1,6 @@
SELECT
"bricktracker_metadata_tags"."id",
"bricktracker_metadata_tags"."name"
FROM "bricktracker_metadata_tags"
{% block where %}{% endblock %}
@@ -0,0 +1,9 @@
BEGIN TRANSACTION;
ALTER TABLE "bricktracker_set_tags"
DROP COLUMN "tag_{{ id }}";
DELETE FROM "bricktracker_metadata_tags"
WHERE "bricktracker_metadata_tags"."id" IS NOT DISTINCT FROM '{{ id }}';
COMMIT;
@@ -0,0 +1,14 @@
BEGIN TRANSACTION;
ALTER TABLE "bricktracker_set_tags"
ADD COLUMN "tag_{{ id }}" BOOLEAN NOT NULL DEFAULT 0;
INSERT INTO "bricktracker_metadata_tags" (
"id",
"name"
) VALUES (
'{{ id }}',
'{{ name }}'
);
COMMIT;
@@ -0,0 +1 @@
{% extends 'set/metadata/tag/base.sql' %}
@@ -0,0 +1,5 @@
{% extends 'set/metadata/tag/base.sql' %}
{% block where %}
WHERE "bricktracker_metadata_tags"."id" IS NOT DISTINCT FROM :id
{% endblock %}
@@ -0,0 +1,3 @@
UPDATE "bricktracker_metadata_tags"
SET "{{field}}" = :value
WHERE "bricktracker_metadata_tags"."id" IS NOT DISTINCT FROM :id
@@ -0,0 +1,10 @@
INSERT INTO "bricktracker_set_tags" (
"id",
"{{name}}"
) VALUES (
:set_id,
:state
)
ON CONFLICT("id")
DO UPDATE SET "{{name}}" = :state
WHERE "bricktracker_set_tags"."id" IS NOT DISTINCT FROM :set_id