diff --git a/application/__pycache__/database_payloads.cpython-313.pyc b/application/__pycache__/database_payloads.cpython-313.pyc index 243c228..28a5704 100644 Binary files a/application/__pycache__/database_payloads.cpython-313.pyc and b/application/__pycache__/database_payloads.cpython-313.pyc differ diff --git a/application/administration/sql/CREATE/food_info.sql b/application/administration/sql/CREATE/food_info.sql index 49d1ec7..98e51d1 100644 --- a/application/administration/sql/CREATE/food_info.sql +++ b/application/administration/sql/CREATE/food_info.sql @@ -1,6 +1,6 @@ CREATE TABLE IF NOT EXISTS %%site_name%%_food_info ( id SERIAL PRIMARY KEY, - food_info_uuid UUID gen_random_uuid(), + food_info_uuid UUID DEFAULT uuid_generate_v4(), food_groups TEXT [], ingrediants TEXT [], nutrients JSONB, diff --git a/application/administration/sql/CREATE/item.sql b/application/administration/sql/CREATE/item.sql index 85db086..f659fb5 100644 --- a/application/administration/sql/CREATE/item.sql +++ b/application/administration/sql/CREATE/item.sql @@ -1,6 +1,6 @@ CREATE TABLE IF NOT EXISTS %%site_name%%_items( id SERIAL PRIMARY KEY, - item_uuid UUID DEFAULT gen_random_uuid(), + item_uuid UUID DEFAULT uuid_generate_v4(), barcode VARCHAR(255), item_name VARCHAR(255) NOT NULL, brand INTEGER, diff --git a/application/administration/sql/CREATE/item_info.sql b/application/administration/sql/CREATE/item_info.sql index 3cedeb0..45546f2 100644 --- a/application/administration/sql/CREATE/item_info.sql +++ b/application/administration/sql/CREATE/item_info.sql @@ -1,6 +1,6 @@ CREATE TABLE IF NOt EXISTS %%site_name%%_item_info ( id SERIAL PRIMARY KEY, - item_info_uuid UUID gen_random_uuid(), + item_info_uuid UUID DEFAULT uuid_generate_v4(), barcode VARCHAR(255), packaging VARCHAR(255), uom_quantity FLOAT8, @@ -9,6 +9,6 @@ CREATE TABLE IF NOt EXISTS %%site_name%%_item_info ( safety_stock FLOAT8, lead_time_days FLOAT8, ai_pick BOOLEAN, - prefixes INTEGER [] + prefixes INTEGER [], UNIQUE(item_info_uuid) ); \ No newline at end of file diff --git a/application/administration/sql/CREATE/logistics_info.sql b/application/administration/sql/CREATE/logistics_info.sql index bc53c31..df92cfe 100644 --- a/application/administration/sql/CREATE/logistics_info.sql +++ b/application/administration/sql/CREATE/logistics_info.sql @@ -1,6 +1,6 @@ CREATE TABLE IF NOT EXISTS %%site_name%%_logistics_info( id SERIAL PRIMARY KEY, - logistics_info_uuid UUID gen_random_uuid(), + logistics_info_uuid UUID DEFAULT uuid_generate_v4(), barcode VARCHAR(255), primary_location INTEGER NOT NULL, primary_zone INTEGER NOT NULL, diff --git a/application/database_payloads.py b/application/database_payloads.py index 6ef9049..37b28c5 100644 --- a/application/database_payloads.py +++ b/application/database_payloads.py @@ -79,11 +79,14 @@ class FoodInfoPayload: @dataclass class ItemsPayload: - barcode: str - item_name: str item_info_id: int + item_info_uuid: str logistics_info_id: int + logistics_info_uuid: str food_info_id: int + food_info_uuid: str + barcode: str = "" + item_name: str = "" brand: int = 0 description: str = "" tags: list = field(default_factory=list) @@ -102,8 +105,11 @@ class ItemsPayload: lst2pgarr(self.tags), json.dumps(self.links), self.item_info_id, + self.item_info_uuid, self.logistics_info_id, + self.logistics_info_uuid, self.food_info_id, + self.food_info_uuid, self.row_type, self.item_type, self.search_string @@ -329,8 +335,9 @@ class ShoppingListPayload: name: str description: str author: int - type: str = "plain" + sub_type: str = "plain" creation_date: datetime.datetime = field(init=False) + list_type: str = "temporary" def __post_init__(self): self.creation_date = datetime.datetime.now() @@ -341,7 +348,8 @@ class ShoppingListPayload: self.description, self.author, self.creation_date, - self.type + self.sub_type, + self.list_type ) diff --git a/application/items/__pycache__/database_items.cpython-313.pyc b/application/items/__pycache__/database_items.cpython-313.pyc index 49e3d4f..967bc44 100644 Binary files a/application/items/__pycache__/database_items.cpython-313.pyc and b/application/items/__pycache__/database_items.cpython-313.pyc differ diff --git a/application/items/__pycache__/items_API.cpython-313.pyc b/application/items/__pycache__/items_API.cpython-313.pyc index edd7e52..f0e6534 100644 Binary files a/application/items/__pycache__/items_API.cpython-313.pyc and b/application/items/__pycache__/items_API.cpython-313.pyc differ diff --git a/application/items/__pycache__/items_processes.cpython-313.pyc b/application/items/__pycache__/items_processes.cpython-313.pyc index 4c88f16..bfa9945 100644 Binary files a/application/items/__pycache__/items_processes.cpython-313.pyc and b/application/items/__pycache__/items_processes.cpython-313.pyc differ diff --git a/application/items/database_items.py b/application/items/database_items.py index 1837c0a..a87d390 100644 --- a/application/items/database_items.py +++ b/application/items/database_items.py @@ -51,6 +51,7 @@ def getItemAllByID(site:str, payload: tuple, convert:bool=True): with open('application/items/sql/getItemAllByID.sql', 'r+') as file: sql = file.read().replace("%%site_name%%", site) record = () + print(sql) try: with psycopg2.connect(**database_config) as conn: with conn.cursor() as cur: diff --git a/application/items/items_processes.py b/application/items/items_processes.py index 2b78f40..c4e85a4 100644 --- a/application/items/items_processes.py +++ b/application/items/items_processes.py @@ -64,11 +64,14 @@ def postNewBlankItem(site_name: str, user_id: int, data: dict, conn=None): item = dbPayloads.ItemsPayload( - data['barcode'], - data['name'], - item_info['id'], - logistics_info['id'], - food_info['id'], + barcode = data['barcode'], + item_name = data['name'], + item_info_id=item_info['id'], + item_info_uuid=item_info['item_info_uuid'], + 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, row_type="single", item_type=data['subtype'], diff --git a/application/items/sql/getItemAllByID.sql b/application/items/sql/getItemAllByID.sql index 709c3ce..ad96fc1 100644 --- a/application/items/sql/getItemAllByID.sql +++ b/application/items/sql/getItemAllByID.sql @@ -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)), info_id AS (SELECT item_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)), 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 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 ( SELECT %%site_name%%_shopping_lists.*, - %%site_name%%_shopping_list_items.uuid, %%site_name%%_shopping_list_items.item_type, %%site_name%%_shopping_list_items.qty FROM %%site_name%%_shopping_lists - JOIN %%site_name%%_shopping_list_items ON %%site_name%%_shopping_lists.id = %%site_name%%_shopping_list_items.sl_id - WHERE %%site_name%%_shopping_list_items.item_id = (SELECT passed_id FROM passed_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_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( 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%%_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, @@ -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%%_brands ON %%site_name%%_items.brand = %%site_name%%_brands.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 WHERE %%site_name%%_items.id=(SELECT passed_id FROM passed_id) GROUP BY diff --git a/application/items/sql/insertItemTuple.sql b/application/items/sql/insertItemTuple.sql index 4c9b940..a8d0113 100644 --- a/application/items/sql/insertItemTuple.sql +++ b/application/items/sql/insertItemTuple.sql @@ -1,5 +1,5 @@ INSERT INTO %%site_name%%_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) +(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 *; \ No newline at end of file diff --git a/application/items/static/itemEditHandler.js b/application/items/static/itemEditHandler.js index 6e43377..fc44f00 100644 --- a/application/items/static/itemEditHandler.js +++ b/application/items/static/itemEditHandler.js @@ -2,7 +2,6 @@ var item; var linked_items; var tags = new Set(); var weblinks; -var groups; var shopping_lists; var food_groups = new Set(); var ingrediants = new Set(); @@ -324,21 +323,6 @@ async function updatePrefixModalTableBody(prefixes) { async function updateReferenceTable(){ let referenceTableBody = document.getElementById('referenceTableBody') 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++){ let tableRow = document.createElement('tr') @@ -1130,7 +1114,6 @@ async function fetchItem() { item = data.item; tags = new Set(item.tags); weblinks = item.links; - groups = item.item_groups; shopping_lists = item.item_shopping_lists; food_groups = new Set(item.food_info.food_groups); ingrediants = new Set(item.food_info.ingrediants); diff --git a/application/receipts/sql/GetItemAllByUUID.sql b/application/receipts/sql/GetItemAllByUUID.sql index d3c033a..326c17c 100644 --- a/application/receipts/sql/GetItemAllByUUID.sql +++ b/application/receipts/sql/GetItemAllByUUID.sql @@ -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)), info_id AS (SELECT item_info_id FROM %%site_name%%_items WHERE id=(SELECT passed_id FROM passed_id)), 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 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 ( SELECT %%site_name%%_shopping_lists.*, - %%site_name%%_shopping_list_items.uuid, %%site_name%%_shopping_list_items.item_type, %%site_name%%_shopping_list_items.qty FROM %%site_name%%_shopping_lists - JOIN %%site_name%%_shopping_list_items ON %%site_name%%_shopping_lists.id = %%site_name%%_shopping_list_items.sl_id - WHERE %%site_name%%_shopping_list_items.item_id = (SELECT passed_id FROM passed_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_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( 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%%_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 @@ -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%%_brands ON %%site_name%%_items.brand = %%site_name%%_brands.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 WHERE %%site_name%%_items.id=(SELECT passed_id FROM passed_id) GROUP BY diff --git a/application/recipes/__pycache__/recipe_processes.cpython-313.pyc b/application/recipes/__pycache__/recipe_processes.cpython-313.pyc index 8096fd1..e49bf37 100644 Binary files a/application/recipes/__pycache__/recipe_processes.cpython-313.pyc and b/application/recipes/__pycache__/recipe_processes.cpython-313.pyc differ diff --git a/application/recipes/recipe_processes.py b/application/recipes/recipe_processes.py index 1b52075..3aebafb 100644 --- a/application/recipes/recipe_processes.py +++ b/application/recipes/recipe_processes.py @@ -188,9 +188,12 @@ def postNewSkuFromRecipe(site_name: str, user_id: int, data: dict, conn=None): item = database_payloads.ItemsPayload( barcode=None, 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_uuid=logistics_info['logistics_info_uuid'], food_info_id=food_info['id'], + food_info_uuid=food_info['food_info_uuid'], links=links, brand=brand_id, row_type="single", diff --git a/application/recipes/sql/insertItemTuple.sql b/application/recipes/sql/insertItemTuple.sql index 4c9b940..a8d0113 100644 --- a/application/recipes/sql/insertItemTuple.sql +++ b/application/recipes/sql/insertItemTuple.sql @@ -1,5 +1,5 @@ INSERT INTO %%site_name%%_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) +(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 *; \ No newline at end of file diff --git a/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc b/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc index e462cdf..61161c5 100644 Binary files a/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc and b/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc differ diff --git a/application/shoppinglists/shoplist_api.py b/application/shoppinglists/shoplist_api.py index 39ba613..4c7f673 100644 --- a/application/shoppinglists/shoplist_api.py +++ b/application/shoppinglists/shoplist_api.py @@ -44,7 +44,7 @@ def addList(): name=list_name, description=list_description, author=user_id, - type=list_type + sub_type=list_type ) shoplist_database.insertShoppingListsTuple(site_name, shopping_list.payload()) return jsonify({'error': False, 'message': 'List added!!'}) diff --git a/application/shoppinglists/sql/insertShoppingListsTuple.sql b/application/shoppinglists/sql/insertShoppingListsTuple.sql index 6816ef5..a659d57 100644 --- a/application/shoppinglists/sql/insertShoppingListsTuple.sql +++ b/application/shoppinglists/sql/insertShoppingListsTuple.sql @@ -1,4 +1,4 @@ INSERT INTO %%site_name%%_shopping_lists -(name, description, author, creation_date, type) -VALUES (%s, %s, %s, %s, %s) +(name, description, author, creation_date, sub_type, list_type) +VALUES (%s, %s, %s, %s, %s, %s) RETURNING *; \ No newline at end of file diff --git a/logs/database.log b/logs/database.log index 42739b5..dc803c6 100644 --- a/logs/database.log +++ b/logs/database.log @@ -398,4 +398,126 @@ 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.*, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) 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: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, - 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);') \ No newline at end of file + 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;') \ No newline at end of file diff --git a/logs/process.log b/logs/process.log index b5329cd..c325ed1 100644 --- a/logs/process.log +++ b/logs/process.log @@ -728,3 +728,176 @@ 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.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!