Massive rewrite

This commit is contained in:
2025-01-17 11:03:00 +01:00
parent 31ddea734e
commit 6477be00b6
169 changed files with 8295 additions and 5775 deletions

View File

@@ -0,0 +1,31 @@
SELECT
minifigures.fig_num,
minifigures.set_num,
minifigures.name,
minifigures.quantity,
minifigures.set_img_url,
minifigures.u_id,
{% block total_missing %}
NULL AS total_missing, -- dummy for order: total_missing
{% endblock %}
{% block total_quantity %}
NULL AS total_quantity, -- dummy for order: total_quantity
{% endblock %}
{% block total_sets %}
NULL AS total_sets -- dummy for order: total_sets
{% endblock %}
FROM minifigures
{% block join %}{% endblock %}
{% block where %}{% endblock %}
{% block group %}{% endblock %}
{% if order %}
ORDER BY {{ order }}
{% endif %}
{% if limit %}
LIMIT {{ limit }}
{% endif %}

View File

@@ -0,0 +1,2 @@
DELETE FROM minifigures
WHERE u_id IS NOT DISTINCT FROM :u_id

View File

@@ -0,0 +1,15 @@
INSERT INTO minifigures (
fig_num,
set_num,
name,
quantity,
set_img_url,
u_id
) VALUES (
:fig_num,
:set_num,
:name,
:quantity,
:set_img_url,
:u_id
)

View File

@@ -0,0 +1,34 @@
{% extends 'minifigure/base/select.sql' %}
{% block total_missing %}
SUM(IFNULL(missing_join.total, 0)) AS total_missing,
{% endblock %}
{% block total_quantity %}
SUM(IFNULL(minifigures.quantity, 0)) AS total_quantity,
{% endblock %}
{% block total_sets %}
COUNT(minifigures.set_num) AS total_sets
{% endblock %}
{% block join %}
-- LEFT JOIN + SELECT to avoid messing the total
LEFT JOIN (
SELECT
set_num,
u_id,
SUM(quantity) AS total
FROM missing
GROUP BY
set_num,
u_id
) missing_join
ON minifigures.u_id IS NOT DISTINCT FROM missing_join.u_id
AND minifigures.fig_num IS NOT DISTINCT FROM missing_join.set_num
{% endblock %}
{% block group %}
GROUP BY
minifigures.fig_num
{% endblock %}

View File

@@ -0,0 +1,6 @@
{% extends 'minifigure/base/select.sql' %}
{% block where %}
WHERE u_id IS NOT DISTINCT FROM :u_id
AND set_num IS NOT DISTINCT FROM :set_num
{% endblock %}

View File

@@ -0,0 +1,17 @@
{% extends 'minifigure/base/select.sql' %}
{% block total_missing %}
SUM(IFNULL(missing.quantity, 0)) AS total_missing,
{% endblock %}
{% block join %}
LEFT JOIN missing
ON minifigures.fig_num IS NOT DISTINCT FROM missing.set_num
AND minifigures.u_id IS NOT DISTINCT FROM missing.u_id
{% endblock %}
{% block group %}
GROUP BY
minifigures.fig_num,
minifigures.u_id
{% endblock %}

View File

@@ -0,0 +1,15 @@
{% extends 'minifigure/base/select.sql' %}
{% block where %}
WHERE minifigures.fig_num IN (
SELECT
missing.set_num
FROM missing
WHERE missing.color_id IS NOT DISTINCT FROM :color_id
AND missing.element_id IS NOT DISTINCT FROM :element_id
AND missing.part_num IS NOT DISTINCT FROM :part_num
GROUP BY missing.set_num
)
{% endblock %}

View File

@@ -0,0 +1,15 @@
{% extends 'minifigure/base/select.sql' %}
{% block where %}
WHERE minifigures.fig_num IN (
SELECT
inventory.set_num
FROM inventory
WHERE inventory.color_id IS NOT DISTINCT FROM :color_id
AND inventory.element_id IS NOT DISTINCT FROM :element_id
AND inventory.part_num IS NOT DISTINCT FROM :part_num
GROUP BY inventory.set_num
)
{% endblock %}

View File

@@ -0,0 +1,38 @@
{% extends 'minifigure/base/select.sql' %}
{% block total_missing %}
SUM(IFNULL(missing_join.total, 0)) AS total_missing,
{% endblock %}
{% block total_quantity %}
SUM(IFNULL(minifigures.quantity, 0)) AS total_quantity,
{% endblock %}
{% block total_sets %}
COUNT(minifigures.set_num) AS total_sets
{% endblock %}
{% block join %}
-- LEFT JOIN + SELECT to avoid messing the total
LEFT JOIN (
SELECT
set_num,
u_id,
SUM(quantity) AS total
FROM missing
GROUP BY
set_num,
u_id
) missing_join
ON minifigures.u_id IS NOT DISTINCT FROM missing_join.u_id
AND minifigures.fig_num IS NOT DISTINCT FROM missing_join.set_num
{% endblock %}
{% block where %}
WHERE fig_num IS NOT DISTINCT FROM :fig_num
{% endblock %}
{% block group %}
GROUP BY
minifigures.fig_num
{% endblock %}

View File

@@ -0,0 +1,7 @@
{% extends 'minifigure/base/select.sql' %}
{% block where %}
WHERE fig_num IS NOT DISTINCT FROM :fig_num
AND u_id IS NOT DISTINCT FROM :u_id
AND set_num IS NOT DISTINCT FROM :set_num
{% endblock %}