export const GENDERS = ["Woman", "Man", "Prefer not to say"] as const;

export const GOALS = [
  "Discover my personal style",
  "Dress better every day",
  "Prepare for an important event",
  "Shop more intentionally",
  "Build a better wardrobe",
  "Reinvent my image",
];

export const PERCEPTIONS = [
  "Confident",
  "Elegant",
  "Sophisticated",
  "Attractive",
  "Powerful",
  "Approachable",
  "Professional",
  "Relaxed",
  "Luxurious",
  "Memorable",
];

export const WOMEN_STYLES = [
  "Chic",
  "Elegant",
  "Feminine",
  "Sexy",
  "Alte",
  "Classic",
  "Minimalist",
  "Afrocentric",
  "Streetwear",
  "Modest",
  "Edgy",
];

export const MEN_STYLES = [
  "Executive",
  "Classic",
  "Smart Casual",
  "Afrocentric",
  "Streetwear",
  "Minimalist",
  "Luxury",
  "Rugged",
  "Preppy",
];

export const OCCASIONS = [
  "Wedding",
  "Church",
  "Office",
  "Dinner",
  "Vacation",
  "Networking Event",
  "Owambe",
  "Date Night",
  "Casual Day Out",
  "Job Interview",
];

export const WEATHER = ["Hot & humid", "Hot & dry", "Warm", "Rainy", "Cool / Harmattan"];
export const TIMES_OF_DAY = ["Morning", "Afternoon", "Evening", "Night"];

export const PREMIUM_FEATURES = [
  "Personalized AI wardrobe organization",
  "Outfit planning using clothes you already own",
  "Monthly styling plans",
  "Unlimited AI styling sessions",
  "Advanced perception analysis",
  "Smart shopping recommendations",
  "Vendor recommendations based on your location",
  "Occasion planning",
  "Wardrobe gap analysis",
  "Seasonal wardrobe planning",
];

export const FREE_RECOMMENDATIONS = 3;

export type StyleAnalysis = {
  body_shape: string;
  face_shape: string;
  skin_tone: string;
  undertone: string;
  proportions: string;
  height: string;
  observations: string[];
};

export type LookItem = { item: string; description: string; why: string };

export type LookPayload = {
  title: string;
  opening: string;
  outfit: LookItem[];
  shoes: LookItem;
  accessories: LookItem[];
  hair?: string;
  makeup?: string;
  color_analysis: string;
  fit_analysis: string;
  why_this_works: string[];
  perception_analysis: string;
  styling_tips: string[];
  visual_prompt: string;
};

export function stylesForGender(gender?: string | null) {
  if (gender === "Man") return MEN_STYLES;
  if (gender === "Woman") return WOMEN_STYLES;
  return Array.from(new Set([...WOMEN_STYLES, ...MEN_STYLES]));
}
