Website for Lukastitch. Hi there! My name is Mimi and I have been a plushie artist since 2018. I have always loved plushies as a kid and now I hope my plushies bring others the same happiness!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

65 lines
1.7 KiB

/**
* 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);
}