Did alot of testing and fixes pre mitigation for

items
This commit is contained in:
Jadowyne Ulve 2025-08-14 20:43:53 -05:00
parent 86e40f70f1
commit c5faa833d2
23 changed files with 341 additions and 74 deletions

View File

@ -1,6 +1,6 @@
CREATE TABLE IF NOT EXISTS %%site_name%%_food_info ( CREATE TABLE IF NOT EXISTS %%site_name%%_food_info (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
food_info_uuid UUID gen_random_uuid(), food_info_uuid UUID DEFAULT uuid_generate_v4(),
food_groups TEXT [], food_groups TEXT [],
ingrediants TEXT [], ingrediants TEXT [],
nutrients JSONB, nutrients JSONB,

View File

@ -1,6 +1,6 @@
CREATE TABLE IF NOT EXISTS %%site_name%%_items( CREATE TABLE IF NOT EXISTS %%site_name%%_items(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
item_uuid UUID DEFAULT gen_random_uuid(), item_uuid UUID DEFAULT uuid_generate_v4(),
barcode VARCHAR(255), barcode VARCHAR(255),
item_name VARCHAR(255) NOT NULL, item_name VARCHAR(255) NOT NULL,
brand INTEGER, brand INTEGER,

View File

@ -1,6 +1,6 @@
CREATE TABLE IF NOt EXISTS %%site_name%%_item_info ( CREATE TABLE IF NOt EXISTS %%site_name%%_item_info (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
item_info_uuid UUID gen_random_uuid(), item_info_uuid UUID DEFAULT uuid_generate_v4(),
barcode VARCHAR(255), barcode VARCHAR(255),
packaging VARCHAR(255), packaging VARCHAR(255),
uom_quantity FLOAT8, uom_quantity FLOAT8,
@ -9,6 +9,6 @@ CREATE TABLE IF NOt EXISTS %%site_name%%_item_info (
safety_stock FLOAT8, safety_stock FLOAT8,
lead_time_days FLOAT8, lead_time_days FLOAT8,
ai_pick BOOLEAN, ai_pick BOOLEAN,
prefixes INTEGER [] prefixes INTEGER [],
UNIQUE(item_info_uuid) UNIQUE(item_info_uuid)
); );

View File

@ -1,6 +1,6 @@
CREATE TABLE IF NOT EXISTS %%site_name%%_logistics_info( CREATE TABLE IF NOT EXISTS %%site_name%%_logistics_info(
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
logistics_info_uuid UUID gen_random_uuid(), logistics_info_uuid UUID DEFAULT uuid_generate_v4(),
barcode VARCHAR(255), barcode VARCHAR(255),
primary_location INTEGER NOT NULL, primary_location INTEGER NOT NULL,
primary_zone INTEGER NOT NULL, primary_zone INTEGER NOT NULL,

View File

@ -79,11 +79,14 @@ class FoodInfoPayload:
@dataclass @dataclass
class ItemsPayload: class ItemsPayload:
barcode: str
item_name: str
item_info_id: int item_info_id: int
item_info_uuid: str
logistics_info_id: int logistics_info_id: int
logistics_info_uuid: str
food_info_id: int food_info_id: int
food_info_uuid: str
barcode: str = ""
item_name: str = ""
brand: int = 0 brand: int = 0
description: str = "" description: str = ""
tags: list = field(default_factory=list) tags: list = field(default_factory=list)
@ -102,8 +105,11 @@ class ItemsPayload:
lst2pgarr(self.tags), lst2pgarr(self.tags),
json.dumps(self.links), json.dumps(self.links),
self.item_info_id, self.item_info_id,
self.item_info_uuid,
self.logistics_info_id, self.logistics_info_id,
self.logistics_info_uuid,
self.food_info_id, self.food_info_id,
self.food_info_uuid,
self.row_type, self.row_type,
self.item_type, self.item_type,
self.search_string self.search_string
@ -329,8 +335,9 @@ class ShoppingListPayload:
name: str name: str
description: str description: str
author: int author: int
type: str = "plain" sub_type: str = "plain"
creation_date: datetime.datetime = field(init=False) creation_date: datetime.datetime = field(init=False)
list_type: str = "temporary"
def __post_init__(self): def __post_init__(self):
self.creation_date = datetime.datetime.now() self.creation_date = datetime.datetime.now()
@ -341,7 +348,8 @@ class ShoppingListPayload:
self.description, self.description,
self.author, self.author,
self.creation_date, self.creation_date,
self.type self.sub_type,
self.list_type
) )

View File

@ -51,6 +51,7 @@ def getItemAllByID(site:str, payload: tuple, convert:bool=True):
with open('application/items/sql/getItemAllByID.sql', 'r+') as file: with open('application/items/sql/getItemAllByID.sql', 'r+') as file:
sql = file.read().replace("%%site_name%%", site) sql = file.read().replace("%%site_name%%", site)
record = () record = ()
print(sql)
try: try:
with psycopg2.connect(**database_config) as conn: with psycopg2.connect(**database_config) as conn:
with conn.cursor() as cur: with conn.cursor() as cur:

View File

@ -64,11 +64,14 @@ def postNewBlankItem(site_name: str, user_id: int, data: dict, conn=None):
item = dbPayloads.ItemsPayload( item = dbPayloads.ItemsPayload(
data['barcode'], barcode = data['barcode'],
data['name'], item_name = data['name'],
item_info['id'], item_info_id=item_info['id'],
logistics_info['id'], item_info_uuid=item_info['item_info_uuid'],
food_info['id'], logistics_info_id=logistics_info['id'],
logistics_info_uuid=logistics_info['logistics_info_uuid'],
food_info_id=food_info['id'],
food_info_uuid=food_info['food_info_uuid'],
brand=brand_id, brand=brand_id,
row_type="single", row_type="single",
item_type=data['subtype'], item_type=data['subtype'],

View File

@ -1,4 +1,4 @@
WITH passed_id AS (SELECT %s AS passed_id), WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM %%site_name%%_items WHERE id=%s),
logistics_id AS (SELECT logistics_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)), logistics_id AS (SELECT logistics_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)),
info_id AS (SELECT item_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)),
cte_conversions AS ( cte_conversions AS (
@ -20,25 +20,14 @@ WITH passed_id AS (SELECT %s AS passed_id),
LEFT JOIN units ON %%site_name%%_item_info.uom = units.id LEFT JOIN units ON %%site_name%%_item_info.uom = units.id
WHERE %%site_name%%_item_info.id = (SELECT item_info_id FROM info_id) WHERE %%site_name%%_item_info.id = (SELECT item_info_id FROM info_id)
), ),
cte_groups AS (
SELECT
%%site_name%%_groups.*,
%%site_name%%_group_items.uuid,
%%site_name%%_group_items.item_type,
%%site_name%%_group_items.qty
FROM %%site_name%%_groups
JOIN %%site_name%%_group_items ON %%site_name%%_groups.id = %%site_name%%_group_items.gr_id
WHERE %%site_name%%_group_items.item_id = (SELECT passed_id FROM passed_id)
),
cte_shopping_lists AS ( cte_shopping_lists AS (
SELECT SELECT
%%site_name%%_shopping_lists.*, %%site_name%%_shopping_lists.*,
%%site_name%%_shopping_list_items.uuid,
%%site_name%%_shopping_list_items.item_type, %%site_name%%_shopping_list_items.item_type,
%%site_name%%_shopping_list_items.qty %%site_name%%_shopping_list_items.qty
FROM %%site_name%%_shopping_lists FROM %%site_name%%_shopping_lists
JOIN %%site_name%%_shopping_list_items ON %%site_name%%_shopping_lists.id = %%site_name%%_shopping_list_items.sl_id JOIN %%site_name%%_shopping_list_items ON %%site_name%%_shopping_lists.list_uuid = %%site_name%%_shopping_list_items.list_uuid
WHERE %%site_name%%_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) WHERE %%site_name%%_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id)
), ),
cte_itemlinks AS ( cte_itemlinks AS (
SELECT * FROM %%site_name%%_itemlinks WHERE link=(SELECT passed_id FROM passed_id) SELECT * FROM %%site_name%%_itemlinks WHERE link=(SELECT passed_id FROM passed_id)
@ -80,7 +69,6 @@ SELECT
row_to_json(%%site_name%%_food_info.*) as food_info, row_to_json(%%site_name%%_food_info.*) as food_info,
row_to_json(%%site_name%%_brands.*) as brand, row_to_json(%%site_name%%_brands.*) as brand,
(SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info,
(SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups,
(SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists,
(SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items,
(SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations,
@ -90,7 +78,6 @@ FROM %%site_name%%_items
LEFT JOIN %%site_name%%_food_info ON %%site_name%%_items.food_info_id = %%site_name%%_food_info.id LEFT JOIN %%site_name%%_food_info ON %%site_name%%_items.food_info_id = %%site_name%%_food_info.id
LEFT JOIN %%site_name%%_brands ON %%site_name%%_items.brand = %%site_name%%_brands.id LEFT JOIN %%site_name%%_brands ON %%site_name%%_items.brand = %%site_name%%_brands.id
LEFT JOIN units ON %%site_name%%_item_info.uom = units.id LEFT JOIN units ON %%site_name%%_item_info.uom = units.id
LEFT JOIN cte_groups ON %%site_name%%_items.id = cte_groups.id
LEFT JOIN cte_shopping_lists ON %%site_name%%_items.id = cte_shopping_lists.id LEFT JOIN cte_shopping_lists ON %%site_name%%_items.id = cte_shopping_lists.id
WHERE %%site_name%%_items.id=(SELECT passed_id FROM passed_id) WHERE %%site_name%%_items.id=(SELECT passed_id FROM passed_id)
GROUP BY GROUP BY

View File

@ -1,5 +1,5 @@
INSERT INTO %%site_name%%_items INSERT INTO %%site_name%%_items
(barcode, item_name, brand, description, tags, links, item_info_id, logistics_info_id, (barcode, item_name, brand, description, tags, links, item_info_id, item_info_uuid,
food_info_id, row_type, item_type, search_string) logistics_info_id, logistics_info_uuid, food_info_id, food_info_uuid, row_type, item_type, search_string)
VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
RETURNING *; RETURNING *;

View File

@ -2,7 +2,6 @@ var item;
var linked_items; var linked_items;
var tags = new Set(); var tags = new Set();
var weblinks; var weblinks;
var groups;
var shopping_lists; var shopping_lists;
var food_groups = new Set(); var food_groups = new Set();
var ingrediants = new Set(); var ingrediants = new Set();
@ -324,21 +323,6 @@ async function updatePrefixModalTableBody(prefixes) {
async function updateReferenceTable(){ async function updateReferenceTable(){
let referenceTableBody = document.getElementById('referenceTableBody') let referenceTableBody = document.getElementById('referenceTableBody')
referenceTableBody.innerHTML = ""; referenceTableBody.innerHTML = "";
for(let i=0; i < groups.length; i++){
let tableRow = document.createElement('tr')
let typeCell = document.createElement('td')
typeCell.innerHTML = `group`
let nameCell = document.createElement('td')
nameCell.innerHTML = `${groups[i].name}`
nameCell.classList.add('uk-text-truncate')
nameCell.classList.add('uk-table-expand')
nameCell.classList.add('uk-width-3-4')
tableRow.append(typeCell)
tableRow.append(nameCell)
referenceTableBody.append(tableRow)
}
for(let i=0; i < shopping_lists.length; i++){ for(let i=0; i < shopping_lists.length; i++){
let tableRow = document.createElement('tr') let tableRow = document.createElement('tr')
@ -1130,7 +1114,6 @@ async function fetchItem() {
item = data.item; item = data.item;
tags = new Set(item.tags); tags = new Set(item.tags);
weblinks = item.links; weblinks = item.links;
groups = item.item_groups;
shopping_lists = item.item_shopping_lists; shopping_lists = item.item_shopping_lists;
food_groups = new Set(item.food_info.food_groups); food_groups = new Set(item.food_info.food_groups);
ingrediants = new Set(item.food_info.ingrediants); ingrediants = new Set(item.food_info.ingrediants);

View File

@ -1,4 +1,4 @@
WITH passed_id AS (SELECT id AS passed_id FROM %%site_name%%_items WHERE item_uuid=%s), WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM %%site_name%%_items WHERE item_uuid=%s),
logistics_id AS (SELECT logistics_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)), logistics_id AS (SELECT logistics_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)),
info_id AS (SELECT item_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)),
cte_item_info AS ( cte_item_info AS (
@ -9,25 +9,14 @@ WITH passed_id AS (SELECT id AS passed_id FROM %%site_name%%_items WHERE item_uu
LEFT JOIN units ON %%site_name%%_item_info.uom = units.id LEFT JOIN units ON %%site_name%%_item_info.uom = units.id
WHERE %%site_name%%_item_info.id = (SELECT item_info_id FROM info_id) WHERE %%site_name%%_item_info.id = (SELECT item_info_id FROM info_id)
), ),
cte_groups AS (
SELECT
%%site_name%%_groups.*,
%%site_name%%_group_items.uuid,
%%site_name%%_group_items.item_type,
%%site_name%%_group_items.qty
FROM %%site_name%%_groups
JOIN %%site_name%%_group_items ON %%site_name%%_groups.id = %%site_name%%_group_items.gr_id
WHERE %%site_name%%_group_items.item_id = (SELECT passed_id FROM passed_id)
),
cte_shopping_lists AS ( cte_shopping_lists AS (
SELECT SELECT
%%site_name%%_shopping_lists.*, %%site_name%%_shopping_lists.*,
%%site_name%%_shopping_list_items.uuid,
%%site_name%%_shopping_list_items.item_type, %%site_name%%_shopping_list_items.item_type,
%%site_name%%_shopping_list_items.qty %%site_name%%_shopping_list_items.qty
FROM %%site_name%%_shopping_lists FROM %%site_name%%_shopping_lists
JOIN %%site_name%%_shopping_list_items ON %%site_name%%_shopping_lists.id = %%site_name%%_shopping_list_items.sl_id JOIN %%site_name%%_shopping_list_items ON %%site_name%%_shopping_lists.list_uuid = %%site_name%%_shopping_list_items.list_uuid
WHERE %%site_name%%_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) WHERE %%site_name%%_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id)
), ),
cte_itemlinks AS ( cte_itemlinks AS (
SELECT * FROM %%site_name%%_itemlinks WHERE link=(SELECT passed_id FROM passed_id) SELECT * FROM %%site_name%%_itemlinks WHERE link=(SELECT passed_id FROM passed_id)
@ -59,7 +48,6 @@ SELECT
row_to_json(%%site_name%%_food_info.*) as food_info, row_to_json(%%site_name%%_food_info.*) as food_info,
row_to_json(%%site_name%%_brands.*) as brand, row_to_json(%%site_name%%_brands.*) as brand,
(SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info,
(SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups,
(SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists,
(SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items,
(SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations
@ -68,7 +56,6 @@ FROM %%site_name%%_items
LEFT JOIN %%site_name%%_food_info ON %%site_name%%_items.food_info_id = %%site_name%%_food_info.id LEFT JOIN %%site_name%%_food_info ON %%site_name%%_items.food_info_id = %%site_name%%_food_info.id
LEFT JOIN %%site_name%%_brands ON %%site_name%%_items.brand = %%site_name%%_brands.id LEFT JOIN %%site_name%%_brands ON %%site_name%%_items.brand = %%site_name%%_brands.id
LEFT JOIN units ON %%site_name%%_item_info.uom = units.id LEFT JOIN units ON %%site_name%%_item_info.uom = units.id
LEFT JOIN cte_groups ON %%site_name%%_items.id = cte_groups.id
LEFT JOIN cte_shopping_lists ON %%site_name%%_items.id = cte_shopping_lists.id LEFT JOIN cte_shopping_lists ON %%site_name%%_items.id = cte_shopping_lists.id
WHERE %%site_name%%_items.id=(SELECT passed_id FROM passed_id) WHERE %%site_name%%_items.id=(SELECT passed_id FROM passed_id)
GROUP BY GROUP BY

View File

@ -189,8 +189,11 @@ def postNewSkuFromRecipe(site_name: str, user_id: int, data: dict, conn=None):
barcode=None, barcode=None,
item_name=data['name'], item_name=data['name'],
item_info_id=item_info['id'], item_info_id=item_info['id'],
item_info_uuid=item_info['item_info_uuid'],
logistics_info_id=logistics_info['id'], logistics_info_id=logistics_info['id'],
logistics_info_uuid=logistics_info['logistics_info_uuid'],
food_info_id=food_info['id'], food_info_id=food_info['id'],
food_info_uuid=food_info['food_info_uuid'],
links=links, links=links,
brand=brand_id, brand=brand_id,
row_type="single", row_type="single",

View File

@ -1,5 +1,5 @@
INSERT INTO %%site_name%%_items INSERT INTO %%site_name%%_items
(barcode, item_name, brand, description, tags, links, item_info_id, logistics_info_id, (barcode, item_name, brand, description, tags, links, item_info_id, item_info_uuid,
food_info_id, row_type, item_type, search_string) logistics_info_id, logistics_info_uuid, food_info_id, food_info_uuid, row_type, item_type, search_string)
VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
RETURNING *; RETURNING *;

View File

@ -44,7 +44,7 @@ def addList():
name=list_name, name=list_name,
description=list_description, description=list_description,
author=user_id, author=user_id,
type=list_type sub_type=list_type
) )
shoplist_database.insertShoppingListsTuple(site_name, shopping_list.payload()) shoplist_database.insertShoppingListsTuple(site_name, shopping_list.payload())
return jsonify({'error': False, 'message': 'List added!!'}) return jsonify({'error': False, 'message': 'List added!!'})

View File

@ -1,4 +1,4 @@
INSERT INTO %%site_name%%_shopping_lists INSERT INTO %%site_name%%_shopping_lists
(name, description, author, creation_date, type) (name, description, author, creation_date, sub_type, list_type)
VALUES (%s, %s, %s, %s, %s) VALUES (%s, %s, %s, %s, %s, %s)
RETURNING *; RETURNING *;

View File

@ -399,3 +399,125 @@
2025-08-14 18:15:24.034419 --- ERROR --- DatabaseError(message='missing FROM-clause entry for table "item_info"LINE 8: COALESCE(row_to_json(item_info.*), '{}') AS item_info ^', 2025-08-14 18:15:24.034419 --- ERROR --- DatabaseError(message='missing FROM-clause entry for table "item_info"LINE 8: COALESCE(row_to_json(item_info.*), '{}') AS item_info ^',
payload=None, payload=None,
sql='WITH sum_cte AS ( SELECT mi.id, SUM(mil.quantity_on_hand) AS total_sum FROM main_item_locations mil JOIN main_items mi ON mil.part_id = mi.id GROUP BY mi.id)SELECT main_items.*, COALESCE(row_to_json(item_info.*), '{}') AS item_infoFROM main_itemsLEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.idLEFT JOIN units ON units.id = main_item_info.uomLEFT JOIN sum_cte ON main_items.id = sum_cte.idWHERE main_item_info.safety_stock > COALESCE(sum_cte.total_sum, 0);') sql='WITH sum_cte AS ( SELECT mi.id, SUM(mil.quantity_on_hand) AS total_sum FROM main_item_locations mil JOIN main_items mi ON mil.part_id = mi.id GROUP BY mi.id)SELECT main_items.*, COALESCE(row_to_json(item_info.*), '{}') AS item_infoFROM main_itemsLEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.idLEFT JOIN units ON units.id = main_item_info.uomLEFT JOIN sum_cte ON main_items.id = sum_cte.idWHERE main_item_info.safety_stock > COALESCE(sum_cte.total_sum, 0);')
2025-08-14 18:26:50.593711 --- ERROR --- DatabaseError(message='column "type" of relation "main_shopping_lists" does not existLINE 2: (name, description, author, creation_date, type) ^',
payload=('Planned Dinners', 'test', 1, datetime.datetime(2025, 8, 14, 18, 26, 50, 576115), 'plain'),
sql='INSERT INTO main_shopping_lists(name, description, author, creation_date, type) VALUES (%s, %s, %s, %s, %s) RETURNING *;')
2025-08-14 19:29:53.965745 --- ERROR --- DatabaseError(message='syntax error at or near "gen_random_uuid"LINE 3: food_info_uuid UUID gen_random_uuid(), ^',
payload=CREATE TABLE IF NOT EXISTS teast_food_info (
id SERIAL PRIMARY KEY,
food_info_uuid UUID gen_random_uuid(),
food_groups TEXT [],
ingrediants TEXT [],
nutrients JSONB,
expires BOOLEAN,
default_expiration FLOAT8,
UNIQUE(food_info_uuid)
);,
sql='food_info')
2025-08-14 19:34:05.734175 --- ERROR --- DatabaseError(message='syntax error at or near "gen_random_uuid"LINE 3: item_info_uuid UUID gen_random_uuid(), ^',
payload=CREATE TABLE IF NOt EXISTS teat_item_info (
id SERIAL PRIMARY KEY,
item_info_uuid UUID gen_random_uuid(),
barcode VARCHAR(255),
packaging VARCHAR(255),
uom_quantity FLOAT8,
uom INTEGER,
cost FLOAT8,
safety_stock FLOAT8,
lead_time_days FLOAT8,
ai_pick BOOLEAN,
prefixes INTEGER []
UNIQUE(item_info_uuid)
);,
sql='item_info')
2025-08-14 19:34:50.879543 --- ERROR --- DatabaseError(message='syntax error at or near "("LINE 13: UNIQUE(item_info_uuid) ^',
payload=CREATE TABLE IF NOt EXISTS teat_item_info (
id SERIAL PRIMARY KEY,
item_info_uuid UUID DEFAULT gen_random_uuid() NOT NULL,
barcode VARCHAR(255),
packaging VARCHAR(255),
uom_quantity FLOAT8,
uom INTEGER,
cost FLOAT8,
safety_stock FLOAT8,
lead_time_days FLOAT8,
ai_pick BOOLEAN,
prefixes INTEGER []
UNIQUE(item_info_uuid)
);,
sql='item_info')
2025-08-14 19:35:21.231158 --- ERROR --- DatabaseError(message='syntax error at or near "gen_random_uuid"LINE 3: logistics_info_uuid UUID gen_random_uuid(), ^',
payload=CREATE TABLE IF NOT EXISTS tet_logistics_info(
id SERIAL PRIMARY KEY,
logistics_info_uuid UUID gen_random_uuid(),
barcode VARCHAR(255),
primary_location INTEGER NOT NULL,
primary_zone INTEGER NOT NULL,
auto_issue_location INTEGER NOT NULL,
auto_issue_zone INTEGER NOT NULL,
UNIQUE(logistics_info_uuid),
CONSTRAINT fk_primary_location
FOREIGN KEY(primary_location)
REFERENCES tet_locations(id),
CONSTRAINT fk_primary_zone
FOREIGN KEY(primary_zone)
REFERENCES tet_zones(id),
CONSTRAINT fk_auto_issue_location
FOREIGN KEY(auto_issue_location)
REFERENCES tet_locations(id),
CONSTRAINT fk_auto_issue_zone
FOREIGN KEY(auto_issue_zone)
REFERENCES tet_zones(id)
);,
sql='logistics_info')
2025-08-14 19:37:59.688952 --- ERROR --- DatabaseError(message='null value in column "item_info_uuid" of relation "tet_items" violates not-null constraintDETAIL: Failing row contains (1, 89f132f4-78b2-4d34-bdf0-ade0f15b7d35, null, test, 1, , {}, {"main": ""}, 1, null, 1, null, 1, null, single, FOOD, &&test&&).',
payload=(None, 'test', 1, '', '{}', '{"main": ""}', 1, 1, 1, 'single', 'FOOD', '&&test&&'),
sql='INSERT INTO tet_items(barcode, item_name, brand, description, tags, links, item_info_id, logistics_info_id, food_info_id, row_type, item_type, search_string) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING *;')
2025-08-14 19:48:30.781212 --- ERROR --- DatabaseError(message='null value in column "item_info_uuid" of relation "tet_items" violates not-null constraintDETAIL: Failing row contains (1, 2ec1ebdf-0794-4e3a-9dfa-d284bfb703af, null, tet, 1, , {}, {"main": ""}, 1, null, 1, null, 1, null, single, FOOD, &&tet&&).',
payload=(None, 'tet', 1, '', '{}', '{"main": ""}', 1, 1, 1, 'single', 'FOOD', '&&tet&&'),
sql='INSERT INTO tet_items(barcode, item_name, brand, description, tags, links, item_info_id, logistics_info_id, food_info_id, row_type, item_type, search_string) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING *;')
2025-08-14 20:08:32.492285 --- ERROR --- DatabaseError(message='null value in column "item_info_uuid" of relation "tet_items" violates not-null constraintDETAIL: Failing row contains (2, 62f23dd1-8af8-48a0-a95f-fb1582d1028f, null, tet, 1, , {}, {"main": ""}, 2, null, 2, null, 2, null, single, FOOD, &&tet&&).',
payload=(None, 'tet', 1, '', '{}', '{"main": ""}', 2, 2, 2, 'single', 'FOOD', '&&tet&&'),
sql='INSERT INTO tet_items(barcode, item_name, brand, description, tags, links, item_info_id, logistics_info_id, food_info_id, row_type, item_type, search_string) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING *;')
2025-08-14 20:08:55.912521 --- ERROR --- DatabaseError(message='null value in column "item_info_uuid" of relation "tet_items" violates not-null constraintDETAIL: Failing row contains (3, f2c4fa98-7758-44af-b38c-dacc7e52e57a, null, rwar, 1, , {}, {"main": ""}, 3, null, 3, null, 3, null, single, FOOD, &&rwar&&).',
payload=(None, 'rwar', 1, '', '{}', '{"main": ""}', 3, 3, 3, 'single', 'FOOD', '&&rwar&&'),
sql='INSERT INTO tet_items(barcode, item_name, brand, description, tags, links, item_info_id, logistics_info_id, food_info_id, row_type, item_type, search_string) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING *;')
2025-08-14 20:09:48.986654 --- ERROR --- DatabaseError(message='tuple index out of range',
payload=(None, 'rwar', 1, '', '{}', '{"main": ""}', 4, 4, 4, 'single', 'FOOD', '&&rwar&&'),
sql='INSERT INTO tet_items(barcode, item_name, brand, description, tags, links, item_info_id, item_info_uuid, logistics_info_id, logistics_info_uuid, food_info_id, food_info_uuid, row_type, item_type, search_string) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING *;')
2025-08-14 20:19:34.321246 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.sl_id does not existLINE 29: ...et_shopping_list_items ON tet_shopping_lists.id = tet_shoppi... ^',
payload=('7152448a-39b7-4fcc-8b7b-5689f1ea598b',),
sql='WITH passed_id AS (SELECT id AS passed_id FROM tet_items WHERE item_uuid=%s), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_groups AS ( SELECT tet_groups.*, tet_group_items.uuid, tet_group_items.item_type, tet_group_items.qty FROM tet_groups JOIN tet_group_items ON tet_groups.id = tet_group_items.gr_id WHERE tet_group_items.item_id = (SELECT passed_id FROM passed_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.id = tet_shopping_list_items.sl_id WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locationsFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:22:56.053977 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.sl_id does not existLINE 19: ...et_shopping_list_items ON tet_shopping_lists.id = tet_shoppi... ^',
payload=('7152448a-39b7-4fcc-8b7b-5689f1ea598b',),
sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM tet_items WHERE item_uuid=%s), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.id = tet_shopping_list_items.sl_id WHERE tet_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locationsFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:23:56.287364 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.uuid does not existLINE 15: tet_shopping_list_items.uuid, ^',
payload=('7152448a-39b7-4fcc-8b7b-5689f1ea598b',),
sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM tet_items WHERE item_uuid=%s), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.list_uuid = tet_shopping_list_items.list_uuid WHERE tet_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locationsFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:24:28.412448 --- ERROR --- DatabaseError(message='relation "cte_groups" does not existLINE 60: LEFT JOIN cte_groups ON tet_items.id = cte_groups.id ^',
payload=('7152448a-39b7-4fcc-8b7b-5689f1ea598b',),
sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM tet_items WHERE item_uuid=%s), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.list_uuid = tet_shopping_list_items.list_uuid WHERE tet_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locationsFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:25:02.052879 --- ERROR --- DatabaseError(message='relation "cte_groups" does not existLINE 59: LEFT JOIN cte_groups ON tet_items.id = cte_groups.id ^',
payload=('7152448a-39b7-4fcc-8b7b-5689f1ea598b',),
sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM tet_items WHERE item_uuid=%s), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.list_uuid = tet_shopping_list_items.list_uuid WHERE tet_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locationsFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:25:41.026376 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.sl_id does not existLINE 40: ...et_shopping_list_items ON tet_shopping_lists.id = tet_shoppi... ^',
payload=(4,),
sql='WITH passed_id AS (SELECT %s AS passed_id), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_groups AS ( SELECT tet_groups.*, tet_group_items.uuid, tet_group_items.item_type, tet_group_items.qty FROM tet_groups JOIN tet_group_items ON tet_groups.id = tet_group_items.gr_id WHERE tet_group_items.item_id = (SELECT passed_id FROM passed_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.id = tet_shopping_list_items.sl_id WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:26:28.764969 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.sl_id does not existLINE 40: ...et_shopping_list_items ON tet_shopping_lists.id = tet_shoppi... ^',
payload=(4,),
sql='WITH passed_id AS (SELECT %s AS passed_id), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_groups AS ( SELECT tet_groups.*, tet_group_items.uuid, tet_group_items.item_type, tet_group_items.qty FROM tet_groups JOIN tet_group_items ON tet_groups.id = tet_group_items.gr_id WHERE tet_group_items.item_id = (SELECT passed_id FROM passed_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.id = tet_shopping_list_items.sl_id WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:30:56.312900 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.sl_id does not existLINE 40: ...et_shopping_list_items ON tet_shopping_lists.id = tet_shoppi... ^',
payload=(4,),
sql='WITH passed_id AS (SELECT %s AS passed_id), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_groups AS ( SELECT tet_groups.*, tet_group_items.uuid, tet_group_items.item_type, tet_group_items.qty FROM tet_groups JOIN tet_group_items ON tet_groups.id = tet_group_items.gr_id WHERE tet_group_items.item_id = (SELECT passed_id FROM passed_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.id = tet_shopping_list_items.sl_id WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(g)), '{}') FROM cte_groups g) AS item_groups, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_groups ON tet_items.id = cte_groups.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:31:47.355307 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.sl_id does not existLINE 30: ...et_shopping_list_items ON tet_shopping_lists.id = tet_shoppi... ^',
payload=(4,),
sql='WITH passed_id AS (SELECT %s AS passed_id), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.uuid, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.id = tet_shopping_list_items.sl_id WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:34:42.067464 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.item_id does not existLINE 30: WHERE tet_shopping_list_items.item_id = (SELECT pass... ^HINT: Perhaps you meant to reference the column "tet_shopping_list_items.item_uuid".',
payload=(4,),
sql='WITH passed_id AS (SELECT %s AS passed_id), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.list_uuid = tet_shopping_list_items.list_uuid WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:35:41.885979 --- ERROR --- DatabaseError(message='column tet_shopping_list_items.item_id does not existLINE 30: WHERE tet_shopping_list_items.item_id = (SELECT pass... ^HINT: Perhaps you meant to reference the column "tet_shopping_list_items.item_uuid".',
payload=(4,),
sql='WITH passed_id AS (SELECT %s AS passed_id), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.list_uuid = tet_shopping_list_items.list_uuid WHERE tet_shopping_list_items.item_id = (SELECT passed_id FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')
2025-08-14 20:38:39.613355 --- ERROR --- DatabaseError(message='column "item_id" does not existLINE 1: ...id, item_uuid as passed_uuid FROM tet_items WHERE item_id=4)... ^HINT: Perhaps you meant to reference the column "tet_items.item_uuid".',
payload=(4,),
sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM tet_items WHERE item_id=%s), logistics_id AS (SELECT logistics_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM tet_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT tet_conversions.id as conv_id, tet_conversions.conv_factor as conv_factor, units.* as uom FROM tet_conversions LEFT JOIN units ON tet_conversions.uom_id = units.id WHERE tet_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT tet_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM tet_sku_prefix as p WHERE p.id = ANY(tet_item_info.prefixes)), '[]'::json) as prefixes FROM tet_item_info LEFT JOIN units ON tet_item_info.uom = units.id WHERE tet_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT tet_shopping_lists.*, tet_shopping_list_items.item_type, tet_shopping_list_items.qty FROM tet_shopping_lists JOIN tet_shopping_list_items ON tet_shopping_lists.list_uuid = tet_shopping_list_items.list_uuid WHERE tet_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM tet_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM tet_item_locations LEFT JOIN tet_locations ON tet_locations.id = tet_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM tet_logistics_info AS li LEFT JOIN tet_locations AS pl ON li.primary_location = pl.id LEFT JOIN tet_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN tet_zones AS pz ON li.primary_zone = pz.id LEFT JOIN tet_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM tet_barcodes AS barcode LEFT JOIN tet_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, tet_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(tet_food_info.*) as food_info, row_to_json(tet_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM tet_items LEFT JOIN tet_item_info ON tet_items.item_info_id = tet_item_info.id LEFT JOIN tet_food_info ON tet_items.food_info_id = tet_food_info.id LEFT JOIN tet_brands ON tet_items.brand = tet_brands.id LEFT JOIN units ON tet_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON tet_items.id = cte_shopping_lists.idWHERE tet_items.id=(SELECT passed_id FROM passed_id)GROUP BY tet_items.id, tet_item_info.id, tet_food_info.id, tet_brands.id;')

View File

@ -728,3 +728,176 @@
2025-08-09 16:19:19.975659 --- INFO --- conversions DROPPED! 2025-08-09 16:19:19.975659 --- INFO --- conversions DROPPED!
2025-08-09 16:19:19.979690 --- INFO --- sku_prefix DROPPED! 2025-08-09 16:19:19.979690 --- INFO --- sku_prefix DROPPED!
2025-08-09 16:19:19.983693 --- INFO --- barcodes DROPPED! 2025-08-09 16:19:19.983693 --- INFO --- barcodes DROPPED!
2025-08-14 19:29:53.905799 --- INFO --- logins Created!
2025-08-14 19:29:53.913684 --- INFO --- sites Created!
2025-08-14 19:29:53.921143 --- INFO --- roles Created!
2025-08-14 19:29:53.927994 --- INFO --- units Created!
2025-08-14 19:29:53.938165 --- INFO --- cost_layers Created!
2025-08-14 19:29:53.948815 --- INFO --- linked_items Created!
2025-08-14 19:29:53.957434 --- INFO --- brands Created!
2025-08-14 19:29:53.969109 --- ERROR --- DatabaseError(message='syntax error at or near "gen_random_uuid"LINE 3: food_info_uuid UUID gen_random_uuid(), ^', payload=CREATE TABLE IF NOT EXISTS teast_food_info (
id SERIAL PRIMARY KEY,
food_info_uuid UUID gen_random_uuid(),
food_groups TEXT [],
ingrediants TEXT [],
nutrients JSONB,
expires BOOLEAN,
default_expiration FLOAT8,
UNIQUE(food_info_uuid)
);, sql='food_info')
2025-08-14 19:34:05.685135 --- INFO --- logins Created!
2025-08-14 19:34:05.689988 --- INFO --- sites Created!
2025-08-14 19:34:05.694012 --- INFO --- roles Created!
2025-08-14 19:34:05.697705 --- INFO --- units Created!
2025-08-14 19:34:05.704841 --- INFO --- cost_layers Created!
2025-08-14 19:34:05.712139 --- INFO --- linked_items Created!
2025-08-14 19:34:05.718040 --- INFO --- brands Created!
2025-08-14 19:34:05.725611 --- INFO --- food_info Created!
2025-08-14 19:34:05.737597 --- ERROR --- DatabaseError(message='syntax error at or near "gen_random_uuid"LINE 3: item_info_uuid UUID gen_random_uuid(), ^', payload=CREATE TABLE IF NOt EXISTS teat_item_info (
id SERIAL PRIMARY KEY,
item_info_uuid UUID gen_random_uuid(),
barcode VARCHAR(255),
packaging VARCHAR(255),
uom_quantity FLOAT8,
uom INTEGER,
cost FLOAT8,
safety_stock FLOAT8,
lead_time_days FLOAT8,
ai_pick BOOLEAN,
prefixes INTEGER []
UNIQUE(item_info_uuid)
);, sql='item_info')
2025-08-14 19:34:50.829663 --- INFO --- logins Created!
2025-08-14 19:34:50.834886 --- INFO --- sites Created!
2025-08-14 19:34:50.839194 --- INFO --- roles Created!
2025-08-14 19:34:50.843224 --- INFO --- units Created!
2025-08-14 19:34:50.850921 --- INFO --- cost_layers Created!
2025-08-14 19:34:50.858422 --- INFO --- linked_items Created!
2025-08-14 19:34:50.863795 --- INFO --- brands Created!
2025-08-14 19:34:50.870953 --- INFO --- food_info Created!
2025-08-14 19:34:50.883113 --- ERROR --- DatabaseError(message='syntax error at or near "("LINE 13: UNIQUE(item_info_uuid) ^', payload=CREATE TABLE IF NOt EXISTS teat_item_info (
id SERIAL PRIMARY KEY,
item_info_uuid UUID DEFAULT gen_random_uuid() NOT NULL,
barcode VARCHAR(255),
packaging VARCHAR(255),
uom_quantity FLOAT8,
uom INTEGER,
cost FLOAT8,
safety_stock FLOAT8,
lead_time_days FLOAT8,
ai_pick BOOLEAN,
prefixes INTEGER []
UNIQUE(item_info_uuid)
);, sql='item_info')
2025-08-14 19:35:21.145030 --- INFO --- logins Created!
2025-08-14 19:35:21.150356 --- INFO --- sites Created!
2025-08-14 19:35:21.154977 --- INFO --- roles Created!
2025-08-14 19:35:21.159169 --- INFO --- units Created!
2025-08-14 19:35:21.167029 --- INFO --- cost_layers Created!
2025-08-14 19:35:21.174711 --- INFO --- linked_items Created!
2025-08-14 19:35:21.180712 --- INFO --- brands Created!
2025-08-14 19:35:21.188182 --- INFO --- food_info Created!
2025-08-14 19:35:21.199559 --- INFO --- item_info Created!
2025-08-14 19:35:21.210793 --- INFO --- zones Created!
2025-08-14 19:35:21.221603 --- INFO --- locations Created!
2025-08-14 19:35:21.235380 --- ERROR --- DatabaseError(message='syntax error at or near "gen_random_uuid"LINE 3: logistics_info_uuid UUID gen_random_uuid(), ^', payload=CREATE TABLE IF NOT EXISTS tet_logistics_info(
id SERIAL PRIMARY KEY,
logistics_info_uuid UUID gen_random_uuid(),
barcode VARCHAR(255),
primary_location INTEGER NOT NULL,
primary_zone INTEGER NOT NULL,
auto_issue_location INTEGER NOT NULL,
auto_issue_zone INTEGER NOT NULL,
UNIQUE(logistics_info_uuid),
CONSTRAINT fk_primary_location
FOREIGN KEY(primary_location)
REFERENCES tet_locations(id),
CONSTRAINT fk_primary_zone
FOREIGN KEY(primary_zone)
REFERENCES tet_zones(id),
CONSTRAINT fk_auto_issue_location
FOREIGN KEY(auto_issue_location)
REFERENCES tet_locations(id),
CONSTRAINT fk_auto_issue_zone
FOREIGN KEY(auto_issue_zone)
REFERENCES tet_zones(id)
);, sql='logistics_info')
2025-08-14 19:35:53.264323 --- INFO --- logins Created!
2025-08-14 19:35:53.269766 --- INFO --- sites Created!
2025-08-14 19:35:53.274221 --- INFO --- roles Created!
2025-08-14 19:35:53.278186 --- INFO --- units Created!
2025-08-14 19:35:53.286015 --- INFO --- cost_layers Created!
2025-08-14 19:35:53.293742 --- INFO --- linked_items Created!
2025-08-14 19:35:53.299834 --- INFO --- brands Created!
2025-08-14 19:35:53.307312 --- INFO --- food_info Created!
2025-08-14 19:35:53.314780 --- INFO --- item_info Created!
2025-08-14 19:35:53.322039 --- INFO --- zones Created!
2025-08-14 19:35:53.328841 --- INFO --- locations Created!
2025-08-14 19:35:53.339467 --- INFO --- logistics_info Created!
2025-08-14 19:35:53.350521 --- INFO --- transactions Created!
2025-08-14 19:35:53.362940 --- INFO --- item Created!
2025-08-14 19:35:53.372902 --- INFO --- vendors Created!
2025-08-14 19:35:53.383192 --- INFO --- groups Created!
2025-08-14 19:35:53.394254 --- INFO --- group_items Created!
2025-08-14 19:35:53.404915 --- INFO --- receipts Created!
2025-08-14 19:35:53.414635 --- INFO --- receipt_items Created!
2025-08-14 19:35:53.424929 --- INFO --- recipes Created!
2025-08-14 19:35:53.434896 --- INFO --- recipe_items Created!
2025-08-14 19:35:53.445431 --- INFO --- shopping_lists Created!
2025-08-14 19:35:53.455619 --- INFO --- shopping_list_items Created!
2025-08-14 19:35:53.467104 --- INFO --- item_locations Created!
2025-08-14 19:35:53.476479 --- INFO --- conversions Created!
2025-08-14 19:35:53.486471 --- INFO --- sku_prefix Created!
2025-08-14 19:35:53.494002 --- INFO --- barcodes Created!
2025-08-14 19:35:53.498636 --- INFO --- Admin User Created!
2025-08-14 19:47:18.752121 --- INFO --- item_info DROPPED!
2025-08-14 19:47:18.763169 --- INFO --- items DROPPED!
2025-08-14 19:47:18.771525 --- INFO --- cost_layers DROPPED!
2025-08-14 19:47:18.779844 --- INFO --- linked_items DROPPED!
2025-08-14 19:47:18.787643 --- INFO --- transactions DROPPED!
2025-08-14 19:47:18.795036 --- INFO --- brands DROPPED!
2025-08-14 19:47:18.802983 --- INFO --- food_info DROPPED!
2025-08-14 19:47:18.811352 --- INFO --- logistics_info DROPPED!
2025-08-14 19:47:18.818889 --- INFO --- zones DROPPED!
2025-08-14 19:47:18.826319 --- INFO --- locations DROPPED!
2025-08-14 19:47:18.833208 --- INFO --- vendors DROPPED!
2025-08-14 19:47:18.840648 --- INFO --- group_items DROPPED!
2025-08-14 19:47:18.847262 --- INFO --- groups DROPPED!
2025-08-14 19:47:18.854357 --- INFO --- receipt_items DROPPED!
2025-08-14 19:47:18.861218 --- INFO --- receipts DROPPED!
2025-08-14 19:47:18.868511 --- INFO --- recipe_items DROPPED!
2025-08-14 19:47:18.876124 --- INFO --- recipes DROPPED!
2025-08-14 19:47:18.882823 --- INFO --- shopping_list_items DROPPED!
2025-08-14 19:47:18.890711 --- INFO --- shopping_lists DROPPED!
2025-08-14 19:47:18.897792 --- INFO --- item_locations DROPPED!
2025-08-14 19:47:18.905273 --- INFO --- conversions DROPPED!
2025-08-14 19:47:18.911977 --- INFO --- sku_prefix DROPPED!
2025-08-14 19:47:18.919101 --- INFO --- barcodes DROPPED!
2025-08-14 19:48:11.092829 --- INFO --- logins Created!
2025-08-14 19:48:11.097983 --- INFO --- sites Created!
2025-08-14 19:48:11.102722 --- INFO --- roles Created!
2025-08-14 19:48:11.107103 --- INFO --- units Created!
2025-08-14 19:48:11.115720 --- INFO --- cost_layers Created!
2025-08-14 19:48:11.123721 --- INFO --- linked_items Created!
2025-08-14 19:48:11.129515 --- INFO --- brands Created!
2025-08-14 19:48:11.137977 --- INFO --- food_info Created!
2025-08-14 19:48:11.149504 --- INFO --- item_info Created!
2025-08-14 19:48:11.157006 --- INFO --- zones Created!
2025-08-14 19:48:11.164004 --- INFO --- locations Created!
2025-08-14 19:48:11.175285 --- INFO --- logistics_info Created!
2025-08-14 19:48:11.182147 --- INFO --- transactions Created!
2025-08-14 19:48:11.191631 --- INFO --- item Created!
2025-08-14 19:48:11.198138 --- INFO --- vendors Created!
2025-08-14 19:48:11.206077 --- INFO --- groups Created!
2025-08-14 19:48:11.214252 --- INFO --- group_items Created!
2025-08-14 19:48:11.222024 --- INFO --- receipts Created!
2025-08-14 19:48:11.228913 --- INFO --- receipt_items Created!
2025-08-14 19:48:11.236880 --- INFO --- recipes Created!
2025-08-14 19:48:11.243995 --- INFO --- recipe_items Created!
2025-08-14 19:48:11.252122 --- INFO --- shopping_lists Created!
2025-08-14 19:48:11.259184 --- INFO --- shopping_list_items Created!
2025-08-14 19:48:11.267776 --- INFO --- item_locations Created!
2025-08-14 19:48:11.274118 --- INFO --- conversions Created!
2025-08-14 19:48:11.281552 --- INFO --- sku_prefix Created!
2025-08-14 19:48:11.286512 --- INFO --- barcodes Created!
2025-08-14 19:48:11.290933 --- INFO --- Admin User Created!