/** * Plushie Catalog - lukastitch.corneruniverse.com * * AI CODING TOOL INSTRUCTIONS: * This file contains the list of plushies displayed in the gallery. * * Common user requests and how to handle them: * - "add a plushie" -> add a new object to the plushies array * - "remove a plushie" -> remove the object with matching name/id * - "mark as sold" -> set available: false * - "mark as available" -> set available: true * - "change plushie description" -> update the description field * - "update etsy link" -> update the etsyLink field */ export interface Plushie { id: string; name: string; image: string; description: string; size: string; available: boolean; etsyLink: string | null; tags?: string[]; // Optional: helps with search } export const plushies: Plushie[] = [ // Example entry - replace with real plushies: // { // id: 'cozy-bear', // name: 'Cozy Bear', // image: '/images/plushies/cozy-bear.jpg', // description: 'A huggable friend for cold nights.', // size: '12 inches', // available: false, // etsyLink: null, // tags: ['bear', 'cozy', 'huggable'] // } ]; /** * Find a plushie by name (case-insensitive partial match) */ export function findPlushie(searchName: string): Plushie | undefined { const normalized = searchName.toLowerCase().trim(); return plushies.find( (p) => p.name.toLowerCase().includes(normalized) || p.id.toLowerCase().includes(normalized), ); } /** * Get available plushies only */ export function getAvailablePlushies(): Plushie[] { return plushies.filter((p) => p.available); } /** * Get sold plushies only */ export function getSoldPlushies(): Plushie[] { return plushies.filter((p) => !p.available); }