| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- -- chatbot_api.catalog_images
- -- Returns product image URLs for a given model pattern.
- -- base_url is read from public.config where item = 'File_Url'.
- -- full_url = base_url || apppicture_path
- CREATE OR REPLACE FUNCTION chatbot_api.catalog_images(
- p_model TEXT,
- p_limit INT DEFAULT 10
- )
- RETURNS JSON
- LANGUAGE sql
- STABLE
- AS $$
- SELECT json_build_object(
- 'base_url', (
- SELECT item_value FROM public.config WHERE item = 'File_Url' LIMIT 1
- ),
- 'images', COALESCE(
- (
- SELECT json_agg(row)
- FROM (
- SELECT json_build_object(
- 'model', c.model,
- 'apppicture_path', spp.apppicture_path,
- 'full_url', (
- SELECT item_value FROM public.config WHERE item = 'File_Url' LIMIT 1
- ) || spp.apppicture_path
- ) AS row
- FROM shop.shop_product_picture spp
- JOIN shop.shop_product sp ON spp.product_id = sp.product_id
- JOIN public.catalog c ON sp.caf_serial_no = c.serial_no
- WHERE c.model ILIKE '%' || p_model || '%'
- AND spp.apppicture_path IS NOT NULL
- LIMIT p_limit
- ) sub
- ),
- '[]'::json
- )
- );
- $$;
- GRANT EXECUTE ON FUNCTION chatbot_api.catalog_images(TEXT, INT) TO chatbot_readonly;
|