import type { ImageSourcePropType } from 'react-native';
import type {
  ArtificialLightType,
  CareReminderPreferences,
  CareTaskDetailMetadata,
  CareTaskNotificationQuickAction,
  CareTaskSource,
  GardenPlantFilter,
  GardenPlantSort,
  HumidityProfile,
  LightProfile,
  OutdoorLightQuality,
  OutdoorSunTiming,
  PlantEventType,
  PlantSetupProfile,
  RoomProfile,
  SpaceType,
  WindowDirection,
} from './garden';
import type { SavedPlantProfile } from './plantScan';

// Re-export garden types so consumers can import them from the appTypes barrel.
export type {
  ArtificialLightType,
  AppSettings,
  CareReminderPreferences,
  CareTaskActionState,
  CareTaskActionStatus,
  CareTaskDetailMetadata,
  CareTaskNotificationQuickAction,
  CareTaskSource,
  ChildAgeRange,
  GardenContextPhoto,
  GardenInfrastructureState,
  GardenPlantFilter,
  GardenPlantSort,
  HumidityProfile,
  LightProfile,
  OutdoorLightQuality,
  OutdoorSunTiming,
  PetAccessMode,
  PetType,
  PlantEvent,
  PlantEventType,
  PlantNotification,
  PlantNotificationState,
  PlantSetupProfile,
  RoomProfile,
  SpaceType,
  WindowDirection,
  WishlistItem,
  WishlistVisibility,
  FieldAlbum,
  ExcursionMode,
  ExcursionPoint,
  ExcursionState,
  ClimateDeviceFrequency,
  FeltEngagement,
  HeatType,
} from './garden';

export type TabKey = 'home' | 'care' | 'community' | 'profile' | 'identify';
export type IdentifyMode = 'plant' | 'problem' | 'seedTag' | 'fungus';
export type IdentifyImage = { uri: string; source: 'camera' | 'gallery'; label?: string; capturedAt: string };
export type IdentifyRequest = {
  mode: IdentifyMode;
  images: IdentifyImage[];
  analyzeTogether: boolean;
  metadata: { exifStripped: true; tab: 'Identify' };
};

// Care validation reset — dev/test only, hidden behind __DEV__ for production safety.
// NOTE: dueTodayQuickActions / futureTaskQuickActions live in constants/layout.ts
// (single source of truth). The duplicates that used to live here were removed (M16).

export type SamplePlant = {
  id: string;
  image: ImageSourcePropType;
  name: string;
  status: string;
  care: string;
  label: string;
  spaceId?: string | null;
};

export const gardenPlants: SamplePlant[] = [];
export type GardenItem =
  | { key: string; kind: 'saved'; plant: SavedPlantProfile }
  | { key: string; kind: 'sample'; plant: SamplePlant };

export type GardenSection = 'plants' | 'spaces' | 'kit' | 'wishlist' | 'investigations' | 'field';
export type PlantFilter = GardenPlantFilter;
export type PlantSort = GardenPlantSort;
export type SpaceSort = 'recently_added' | 'name_az' | 'most_plants';
export type GardenForm = 'plant' | 'space' | 'setup' | 'event' | 'assignPlants' | null;
export type GardenDetail = { kind: 'space'; id: string } | null;
export type PlantMemoryEventType = Extract<PlantEventType,
  'progress_photo' | 'new_leaf' | 'flowering' | 'fruiting' | 'repotting' | 'pruning' | 'custom' |
  'yellow_leaves' | 'brown_tips' | 'drooping' | 'pest_signs' | 'slow_growth' |
  'recovery' | 'improved_growth' | 'fertilized' | 'watered' | 'moved_location' | 'treatment'>;
export type PlantEventFormState = {
  editingEventId?: string;
  type: PlantMemoryEventType;
  eventCategory: 'action' | 'observation' | 'milestone' | 'progress_photo' | 'custom';
  showCategoryPicker?: boolean;
  title: string;
  note: string;
  photoUri?: string;
  eventDate: string;
};
export type PlantFormTarget = 'assignedSpace';
export type SetupFormTarget = 'containerType' | 'medium' | 'wateringMethod' | 'dedicatedLight' | 'linkedKitItems' | 'setupPhoto';
export type SpaceFormTarget = 'environmentDetails' | 'environmentPhoto';
export type DetailFormTarget =
  | { form: 'plant'; field: PlantFormTarget }
  | { form: 'setup'; field: SetupFormTarget }
  | { form: 'space'; field: SpaceFormTarget };
export type DetailHighlightTarget = DetailFormTarget | { form: 'setup'; field: 'section' };
export type PlantIntelligenceAction =
  | 'review_identification'
  | 'add_setup_details'
  | 'add_setup_photo'
  | 'assign_space'
  | 'complete_environment'
  | 'add_environment_photo'
  | 'add_watering_method'
  | 'add_dedicated_light'
  | 'add_linked_kit'
  | 'add_progress_photo';
export type PlantKnowledgeItem = {
  key: string;
  label: string;
  why?: string;
  action?: PlantIntelligenceAction;
  comingSoon?: boolean;
};
export type PlantKnowledgeCategory = {
  known: PlantKnowledgeItem[];
  missing: PlantKnowledgeItem[];
};
export type PlantKnowledgeSummary = {
  identity: PlantKnowledgeCategory;
  environment: PlantKnowledgeCategory;
  setup: PlantKnowledgeCategory;
  history: PlantKnowledgeCategory;
  optionalResources: PlantKnowledgeCategory;
  historyContext: {
    hasProgressPhotos: boolean;
    eventCount: number;
    latestEventDate?: string;
  };
  compactKnown: PlantKnowledgeItem[];
  missingEssentialContext: PlantKnowledgeItem[];
  helpfulContext: PlantKnowledgeItem[];
  optionalEnhancements: PlantKnowledgeItem[];
  nextBestStep?: PlantKnowledgeItem;
};
export type PlantIntelligenceSummary = {
  isAllSet: boolean;
  hasIdentification: boolean;
  hasScientificName: boolean;
  hasAssignedSpace: boolean;
  hasEnvironmentDetails: boolean;
  hasEnvironmentPhoto: boolean;
  hasPlacement: boolean;
  hasSetupDetails: boolean;
  hasSetupPhoto: boolean;
  hasDedicatedLightInfo: boolean;
  hasProgressHistory: boolean;
  linkedKitCount: number;
  knowledgeSummary: PlantKnowledgeSummary;
  missingContext: PlantKnowledgeItem[];
  helpfulContext: PlantKnowledgeItem[];
  optionalEnhancements: PlantKnowledgeItem[];
  nextBestAction: string;
  nextBestActionKey?: PlantIntelligenceAction;
  nextBestActionComingSoon?: boolean;
};
export type HomeGardenSnapshotSummary = {
  plantCount: number;
  spaceCount: number;
  needsCareCount: number;
};
export type SpaceSummary = {
  plantCount: number;
  needsCareCount: number;
  statusLabel: 'Empty Space' | 'Needs Attention' | 'All Good';
  statusTone: 'empty' | 'needs' | 'good';
};
export type CareTiming = 'today' | 'tomorrow' | 'this_week' | 'later';
export type CareTaskItem = {
  id: string;
  plantId: string;
  type: string;
  plantName: string;
  spaceId?: string | null;
  spaceName?: string;
  timing: CareTiming;
  dueLabel: string;
  dueDate?: string | null;
  isOverdue?: boolean;
  source: CareTaskSource;
  metadata: CareTaskDetailMetadata;
  notificationQuickActions: CareTaskNotificationQuickAction[];
  reminderPreferences: CareReminderPreferences;
  actionLabel?: string;
  sourceText: string;
  icon: ImageSourcePropType;
  /** Per-space weather-adjusted cadence note (Bekky, 2026-08-23): a small green
   *  line under the task when weather moved its due date, e.g. "Due to heavy
   *  rain in the open patio, we've pushed watering to tomorrow." */
  weatherNote?: string;
  /** True when weather pushed this task past the Upcoming window (7d). Kept
   *  (not dropped) and grayed out so the gardener sees it moved due to weather
   *  instead of the whole space vanishing (Bekky, 2026-09-02). */
  weatherAdjusted?: boolean;
};
export type CareFeedbackState = {
  message: string;
  undo?: () => void;
};
export type NotificationSnoozeOption = {
  key: 'one_hour' | 'tomorrow' | 'after_work' | 'need_supplies' | 'custom';
  label: string;
  actionLabel: string;
  /** For key 'need_supplies' — how many days until the reminder returns. */
  days?: number;
  /** For key 'custom' — the user's chosen date/time. */
  customDate?: Date;
};
export type Option<T extends string> = { value: T; label: string };
export type PlantFormState = {
  name: string;
  scientificName: string;
  plantType: SavedPlantProfile['plantType'];
  growthStage: NonNullable<SavedPlantProfile['growthStage']>;
  timeOwned: NonNullable<SavedPlantProfile['timeOwned']>;
  photoUri?: string;
  spaceId: string | null;
  notes: string;
};
export type SpaceFormState = Omit<RoomProfile, 'id' | 'createdAt' | 'updatedAt'>;
export type SetupFormState = Omit<PlantSetupProfile, 'id' | 'createdAt' | 'updatedAt' | 'plantId'>;

export const plantFilterOptions: Option<PlantFilter>[] = [
  { value: 'all', label: 'All Plants' },
  { value: 'needs_care', label: 'Needs Care' },
  { value: 'missing_setup', label: 'Missing Setup' },
  { value: 'open_cases', label: 'Open Cases' },
  { value: 'seeds', label: 'Seeds' },
];

export const plantSortOptions: Option<PlantSort>[] = [
  { value: 'by_space', label: 'By Space' },
  { value: 'recently_added', label: 'Recently Added' },
  { value: 'name_az', label: 'Name A-Z' },
  { value: 'needs_care', label: 'Needs Care First' },
  { value: 'last_watered', label: 'Last Watered' },
];

export const plantTypeOptions: Option<SavedPlantProfile['plantType']>[] = [
  { value: 'houseplant', label: 'Houseplant' },
  { value: 'tree', label: 'Tree' },
  { value: 'garden', label: 'Garden' },
  { value: 'crop', label: 'Crop' },
  { value: 'cutting', label: 'Cutting' },
  { value: 'unsure', label: 'Unsure' },
];

export const growthStageOptions: Option<NonNullable<SavedPlantProfile['growthStage']>>[] = [
  { value: 'cutting', label: 'Cutting' },
  { value: 'rooted_cutting', label: 'Rooted cutting' },
  { value: 'seedling', label: 'Seedling' },
  { value: 'sapling', label: 'Sapling' },
  { value: 'young_plant', label: 'Young plant' },
  { value: 'mature_plant', label: 'Mature plant' },
  { value: 'established_plant', label: 'Established plant' },
  { value: 'unsure', label: 'Unsure' },
];

export const timeOwnedOptions: Option<NonNullable<SavedPlantProfile['timeOwned']>>[] = [
  { value: 'less_than_1_month', label: 'Less than 1 month' },
  { value: 'one_to_six_months', label: '1-6 months' },
  { value: 'six_to_twelve_months', label: '6-12 months' },
  { value: 'one_to_three_years', label: '1-3 years' },
  { value: 'three_plus_years', label: '3+ years' },
  { value: 'unsure', label: 'Unsure' },
];

export const plantingMediumOptions: Option<string>[] = [
  { value: 'soil', label: 'Soil' },
  { value: 'coco_coir', label: 'Coco Coir' },
  { value: 'perlite', label: 'Perlite' },
  { value: 'vermiculite', label: 'Vermiculite' },
  { value: 'leca', label: 'LECA' },
  { value: 'orchid_bark', label: 'Orchid Bark' },
  { value: 'sphagnum_moss', label: 'Sphagnum Moss' },
  { value: 'sand', label: 'Sand' },
  { value: 'compost', label: 'Compost' },
  { value: 'pumice', label: 'Pumice' },
  { value: 'charcoal', label: 'Charcoal' },
  { value: 'other', label: 'Other' },
];

export const treatmentPreferenceOptions: Option<NonNullable<SavedPlantProfile['treatmentPreferences']>[number]>[] = [
  { value: 'strictly_organic', label: 'Strictly Organic' },
  { value: 'diy_first', label: 'DIY First' },
  { value: 'store_bought_organic', label: 'Store-Bought Organic' },
  { value: 'chemical_escalation_opt_in', label: 'Chemical Escalation OK' },
];

export const spaceSortOptions: Option<SpaceSort>[] = [
  { value: 'recently_added', label: 'Recently Added' },
  { value: 'name_az', label: 'Name A-Z' },
  { value: 'most_plants', label: 'Most Plants' },
];

export const spaceTypeOptions: Option<SpaceType>[] = [
  { value: 'bedroom', label: 'Bedroom' },
  { value: 'living_room', label: 'Living Room' },
  { value: 'kitchen', label: 'Kitchen' },
  { value: 'bathroom', label: 'Bathroom' },
  { value: 'office', label: 'Office' },
  { value: 'nursery', label: 'Nursery' },
  { value: 'balcony', label: 'Balcony' },
  { value: 'patio', label: 'Patio' },
  { value: 'greenhouse', label: 'Greenhouse' },
  { value: 'grow_tent', label: 'Grow Tent' },
  { value: 'windowsill', label: 'Windowsill' },
  { value: 'propagation_station', label: 'Propagation Station' },
  { value: 'seed_starting_area', label: 'Seed Starting Area' },
  { value: 'garden', label: 'Garden' },
  { value: 'orchard', label: 'Orchard' },
];

export const windowDirections: Option<WindowDirection>[] = [
  { value: 'north', label: 'North' },
  { value: 'south', label: 'South' },
  { value: 'east', label: 'East' },
  { value: 'west', label: 'West' },
  { value: 'northeast', label: 'Northeast' },
  { value: 'northwest', label: 'Northwest' },
  { value: 'southeast', label: 'Southeast' },
  { value: 'southwest', label: 'Southwest' },
  { value: 'none', label: 'None / No window' },
  { value: 'unsure', label: 'Unsure' },
];

export const outdoorSunTimingOptions: Option<OutdoorSunTiming>[] = [
  { value: 'morning_sun', label: 'Morning sun' },
  { value: 'afternoon_sun', label: 'Afternoon sun' },
  { value: 'evening_sun', label: 'Evening sun' },
  { value: 'all_day_sun', label: 'All-day sun' },
];

export const outdoorLightQualityOptions: Option<OutdoorLightQuality>[] = [
  { value: 'direct_sun', label: 'Direct sun' },
  { value: 'filtered_light', label: 'Filtered light' },
  { value: 'partial_shade', label: 'Partial shade' },
  { value: 'full_shade', label: 'Full shade' },
  { value: 'unsure', label: 'Unsure' },
];

export const artificialLightTypeOptions: Option<ArtificialLightType>[] = [
  { value: 'led', label: 'LED' },
  { value: 'grow_light', label: 'Grow light' },
  { value: 'fluorescent', label: 'Fluorescent' },
  { value: 'other', label: 'Other' },
];

export const outdoorSpaceTypes = new Set<SpaceType>(['garden', 'patio', 'balcony', 'greenhouse', 'orchard']);

// Single source of truth for the saved-key prefix (L7) — was hardcoded as
// 'saved:' literals + .slice(6) in many places.
export const SAVED_PREFIX = 'saved:';
export const savedGardenKey = (id: string) => `${SAVED_PREFIX}${id}`;
export const sampleGardenKey = (name: string) => `sample:${name}`;

// Additional option arrays (extracted from App.tsx)

export const lightLevels: Option<RoomProfile['lightLevel']>[] = [
  { value: 'low', label: 'Low' }, { value: 'medium', label: 'Medium' },
  { value: 'bright_indirect', label: 'Bright Indirect' }, { value: 'direct_sun', label: 'Direct Sun' },
  { value: 'grow_light', label: 'Grow Light' }, { value: 'unsure', label: 'Unsure' },
];

export const lightProfileOptions: Option<LightProfile>[] = [
  { value: 'low_light', label: 'Low Light' }, { value: 'medium_light', label: 'Medium Light' },
  { value: 'bright_indirect', label: 'Bright Indirect' }, { value: 'direct_sun', label: 'Direct Sun' },
];

export const humidityOptions: Option<RoomProfile['humidityEstimate']>[] = [
  { value: 'dry', label: 'Dry' }, { value: 'normal', label: 'Normal' },
  { value: 'humid', label: 'Humid' }, { value: 'unsure', label: 'Unsure' },
];

export const humidityProfileOptions: Option<HumidityProfile>[] = [
  { value: 'dry', label: 'Dry' }, { value: 'average', label: 'Average' }, { value: 'humid', label: 'Humid' },
];

export const temperatureOptions: Option<RoomProfile['temperatureEstimate']>[] = [
  { value: 'cool', label: 'Cool' }, { value: 'normal', label: 'Normal' },
  { value: 'warm', label: 'Warm' }, { value: 'fluctuates', label: 'Fluctuates' }, { value: 'unsure', label: 'Unsure' },
];

export const distanceOptions: Option<NonNullable<PlantSetupProfile['distanceFromWindow']>>[] = [
  { value: 'windowsill', label: 'Windowsill' }, { value: 'one_to_three_ft', label: '1-3 ft' },
  { value: 'four_to_six_ft', label: '4-6 ft' }, { value: 'six_plus_ft', label: '6+ ft' },
  { value: 'not_applicable', label: 'N/A' }, { value: 'unsure', label: 'Unsure' },
];

export const plantedInOptions: Option<NonNullable<PlantSetupProfile['plantedIn']>>[] = [
  { value: 'pot', label: 'In a pot' },
  { value: 'ground', label: 'In the ground' },
  { value: 'hydroponic', label: 'Hydroponic or soil-less' },
  { value: 'unsure', label: 'Not sure' },
];

// Follow-up to the "In the ground" gate answer: how exactly it's planted in
// the ground. Soil (native vs custom brought-in) is chosen in the soil section
// below, NOT here. (Bekky, 2026-08-22.)
export const inGroundKindOptions: Option<NonNullable<PlantSetupProfile['inGroundKind']>>[] = [
  { value: 'ground', label: 'Directly in the ground' },
  { value: 'garden_bed', label: 'In a garden bed' },
  { value: 'raised_bed', label: 'In a raised bed' },
  { value: 'unsure', label: 'Not sure' },
];

// Hydroponic / soil-less — KIND of setup (Bekky, 2026-08-22). Kept minimal:
// most hydro users here are water gardens, glass containers, or cuttings, not
// serious hydro growers (who have a system and don't need the app). 'cuttings'
// is NOT listed — the app has a dedicated cutting pathway. Self-watering spike
// is not hydroponics (it's just water). Custom is the last option.
export const hydroSetupOptions: Option<NonNullable<PlantSetupProfile['hydroSetup']>>[] = [
  { value: 'water', label: 'In water' },
  { value: 'hydro_unit', label: 'Hydroponic system / unit' },
  { value: 'custom', label: 'Custom' },
  { value: 'unsure', label: 'Not sure' },
];

// Hydro growing medium — minimal but covers the hobby crowd (Bekky, 2026-08-22,
// AI-refined). Shown only for a hydro system/unit. Plain hobby-gardener words.
export const hydroMediumOptions: Option<string>[] = [
  { value: 'water', label: 'Just water' },
  { value: 'leca', label: 'LECA' },
  { value: 'sponge', label: 'Sponge' },
  { value: 'rockwool', label: 'Rockwool' },
  { value: 'gravel', label: 'Gravel' },
  { value: 'custom', label: 'Custom' },
];

export const potTypeOptions: Option<NonNullable<PlantSetupProfile['potType']>>[] = [
  // Everyday pots (Bekky, 2026-08-22): placement (in ground / raised bed / hydro)
  // is owned by the gate, so those are NOT pot types. A ceramic/plastic pot
  // outdoors is still just a ceramic/plastic pot.
  { value: 'plastic', label: 'Plastic pot' },
  { value: 'ceramic', label: 'Ceramic pot' },
  { value: 'terracotta', label: 'Terracotta pot' },
  { value: 'nursery_pot', label: 'Nursery pot (grow pot)' },
  { value: 'hanging', label: 'Hanging pot / basket' },
  { value: 'grow_bag', label: 'Grow bag' },
  { value: 'window_box', label: 'Window box' },
  // A very LARGE container. The SHARED aspect (does it hold multiple plants and
  // are they roommates) is owned by the "Shared container" chip above Pot type
  // (Bekky, 2026-09-04) — so this is just "Large planter", not "shared planter",
  // to avoid duplicating that concept.
  { value: 'shared_planter', label: 'Large planter' },
  { value: 'custom', label: 'Custom' },
  { value: 'unsure', label: 'Unsure' },
];

export const potSizeOptions: Option<NonNullable<PlantSetupProfile['potSize']>>[] = [
  { value: 'small', label: 'Small' }, { value: 'medium', label: 'Medium' },
  { value: 'large', label: 'Large' }, { value: 'extra_large', label: 'XL' },
  { value: 'custom', label: 'Custom' }, { value: 'not_applicable', label: 'N/A' }, { value: 'unsure', label: 'Unsure' },
];

export const drainageOptions: Option<NonNullable<PlantSetupProfile['drainage']>>[] = [
  { value: 'has_holes', label: 'Has Holes' }, { value: 'no_holes', label: 'No Holes' },
  { value: 'not_applicable', label: 'N/A' }, { value: 'unsure', label: 'Unsure' },
];

// Medium options — grouped by role so users can pick the components of their mix.
// 2026-08-06: deduped (removed soil/garden_soil overlap, dropped 'custom' in favor
// of 'other' + optional elaboration), added worm_castings/bark_chips/lava_rock.
// Medium options — store-bought pre-made mixes (Bekky, 2026-08-22) PLUS an
// always-available CUSTOM component picker. They coexist: someone can pick a
// store-bought mix AND still add a custom piece (e.g. potting mix + perlite).
export const mediumOptions: Option<NonNullable<PlantSetupProfile['mediumType']>>[] = [
  // ——— Store-bought pre-made mixes (single-select-ish) ———
  { value: 'general_purpose', label: 'General-purpose potting mix' },
  { value: 'indoor_mix', label: 'Indoor / houseplant mix' },
  { value: 'organic_all', label: 'All-purpose organic potting mix' },
  { value: 'moisture_control', label: 'Moisture-retaining mix' },
  { value: 'succulent_cactus', label: 'Succulent & cactus mix' },
  { value: 'orchid', label: 'Orchid mix (chunky bark)' },
  { value: 'seed_starting', label: 'Seed-starting mix' },
  { value: 'garden_soil', label: 'Native ground soil' },
  { value: 'vegetable', label: 'Vegetable & herb soil' },
  { value: 'acid_loving', label: 'Acid-loving mix (blueberries, azaleas)' },
  // ——— Custom components (multi-select, added freely) ———
  { value: 'custom', label: 'Custom — add your own' },
];

// Custom-mix COMPONENTS — a FLAT single multi-select (Bekky, 2026-08-22): the
// user combines them freely (potting soil + orchid bark + coco coir + LECA +
// perlite = one mix), NO "base vs aeration" split. Always available alongside
// any store-bought mix they picked.
export const customMediumComponents: Option<string>[] = [
  { value: 'potting_soil', label: 'Potting soil' },
  { value: 'coco_coir', label: 'Coco coir' },
  { value: 'peat_moss', label: 'Peat moss' },
  { value: 'perlite', label: 'Perlite (light, for drainage)' },
  { value: 'vermiculite', label: 'Vermiculite (holds water)' },
  { value: 'orchid_bark', label: 'Orchid bark / bark chips' },
  { value: 'compost', label: 'Compost' },
  { value: 'worm_castings', label: 'Worm castings' },
  { value: 'leca', label: 'LECA (clay pebbles)' },
  { value: 'sand_grit', label: 'Coarse sand / horticultural grit' },
  { value: 'charcoal', label: 'Horticultural charcoal' },
  { value: 'pumice', label: 'Pumice' },
];

// Top dressing — a surface layer on top of the medium (not part of the mix).
// Multi-select so users can combine (e.g. bark + pebbles). 2026-08-06: new field.
export const topDressingOptions: Option<string>[] = [
  { value: 'bark_chips', label: 'Bark Chips' },
  { value: 'gravel', label: 'Gravel' },
  { value: 'pebbles', label: 'Pebbles' },
  { value: 'moss', label: 'Moss' },
  { value: 'lava_rock', label: 'Lava Rock' },
  { value: 'sand', label: 'Sand' },
  { value: 'custom', label: 'Custom' },
];

// Watering methods — grouped by how water is delivered. Multi-select so users
// can combine (e.g. top water + mist + humidifier). 2026-08-06: expanded.
export const wateringMethodOptions: Option<NonNullable<PlantSetupProfile['wateringMethod']>>[] = [
  // Watering APPARATUS only (Bekky, 2026-08-22 overhaul + AI polish): the METHOD
  // (how wet the foliage gets) is implied by the apparatus. All multi-select,
  // no gating — "Rainwater" + "Hose" together is the intended normal case.
  // Self-watering (reservoir/tray) lives HERE, not as a pot type. The automated
  // yes/no is a separate question (timer/tap vs manual — a different axis).
  { value: 'watering_can', label: 'Watering can' },
  { value: 'hose', label: 'Hose' },
  { value: 'mister', label: 'Mister / spray bottle' },
  { value: 'sprinkler', label: 'Sprinkler' },
  { value: 'soaker_hose', label: 'Soaker hose' },
  { value: 'drip', label: 'Drip irrigation' },
  { value: 'wick', label: 'Wick / wicking cord' },
  { value: 'in_ground', label: 'In-ground system' },
  { value: 'self_watering', label: 'Self-watering (reservoir or tray)' },
  { value: 'rainwater', label: 'Rainwater' },
  { value: 'custom', label: 'Something else' },
];

// Watering STYLE — a separate single-select from apparatus (Bekky, 2026-08-22):
// top vs bottom is HOW the water is applied, not the tool. Sub-separated so it
// isn't conflated with the apparatus list.
export const wateringStyleOptions: Option<NonNullable<PlantSetupProfile['wateringStyle']>>[] = [
  { value: 'top', label: 'Top watering' },
  { value: 'bottom', label: 'Bottom watering' },
  { value: 'unsure', label: 'Unsure' },
];
