ping | true | — | true | Health probe; no auth, no I/O. |
validate_gtin | true | — | true | Pure validation — no DB access. |
resolve_gtin | true | — | true | DB read against the resolver-rule hierarchy. |
lookup_product | true | — | true | DB read against the product catalog. |
search_products | true | — | true | Hybrid semantic + lexical catalog search. |
get_product_detail | true | — | true | Rolled-up product read (images, ingredients, nutrition). |
compare_products | true | — | true | Side-by-side read across 2-5 GTINs. |
check_availability | true | — | true | Nearby-offer read via PostGIS. |
generate_qr_url | false | — | true | Builds a Digital Link URL and records the call via @user_action. State-mutating but not destructive. |
create_product | false | — | false | Creates a new catalog row; not idempotent (a second call with the same GTIN conflicts). |
update_product | false | — | true | Updates scalar fields on an existing row. Additive, not destructive. |
upload_product_image | false | — | false | Adds a new image; does not overwrite existing ones. |
delete_product_image | false | true | false | Deletes user-visible data. |
upload_product_document | false | — | false | Adds a new document. |
update_product_document | false | — | false | Edits metadata / optionally replaces the file on an existing document. |
delete_product_document | false | true | false | Deletes user-visible data. |
add_product_video | false | — | false | Adds a new video link. |
update_product_video | false | — | false | Edits an existing video’s fields. |
delete_product_video | false | true | false | Deletes user-visible data. |
set_product_nutrition | false | true | true | Wholesale-replaces the nutrition panel — rows omitted from the call are deleted. |
set_product_ingredients | false | true | true | Wholesale-replaces the parsed ingredient list. |