import { serverRequest } from "./serverConnection"; export interface EcommerceTemplateAsset { fileName?: string; extension?: string; sizeBytes?: number; assetIndex?: number; ossKey?: string; url?: string; } export interface EcommerceTemplatePreview { fileName?: string; extension?: string; sizeBytes?: number; ossKey?: string; url?: string; } export interface EcommerceTemplateManifestItem { id: string; category?: string; categorySlug?: string; templateName?: string; templateSlug?: string; preview?: EcommerceTemplatePreview; prompt?: string; assets?: EcommerceTemplateAsset[]; } export interface EcommerceTemplateListResult { version?: number; ossPrefix?: string; generatedAt?: string; templates: EcommerceTemplateManifestItem[]; total: number; } export async function listEcommerceTemplates(category?: string): Promise { const search = new URLSearchParams(); if (category) search.set("category", category); const suffix = search.toString(); const response = await serverRequest( `ai/ecommerce/templates${suffix ? `?${suffix}` : ""}`, { method: "GET", maxRetries: 1, fallbackMessage: "Failed to load ecommerce templates", }, ); return { ...response, templates: Array.isArray(response.templates) ? response.templates : [], total: Number.isFinite(response.total) ? response.total : Array.isArray(response.templates) ? response.templates.length : 0, }; }