/**
 * Instruments Database
 * 50+ instruments with stats, crafting recipes, and sources
 */

export const instruments = [
  // ============ GUITARS ============
  {
    id: 'acoustic_guitar_basic',
    name: 'Basic Acoustic Guitar',
    type: 'guitar',
    rarity: 'common',
    stats: {
      folkBonus: 0.1,
      countryBonus: 0.1,
      qualityMultiplier: 1.0
    },
    requiredLevel: 1,
    value: 100,
    description: 'A simple acoustic guitar for beginners',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'wood', quantity: 3 },
      { item: 'strings', quantity: 6 }
    ]
  },

  {
    id: 'strat_guitar',
    name: 'Fender Stratocaster',
    type: 'guitar',
    rarity: 'epic',
    stats: {
      rockBonus: 0.3,
      bluesBonus: 0.2,
      qualityMultiplier: 1.25
    },
    requiredLevel: 5,
    value: 800,
    description: 'Legendary electric guitar favored by rock icons',
    sourceMusician: 'hendrix',
    craftingMaterials: [
      { item: 'wood', quantity: 5 },
      { item: 'strings', quantity: 6 },
      { item: 'electric_pickup', quantity: 3 }
    ]
  },

  {
    id: 'les_paul',
    name: 'Gibson Les Paul',
    type: 'guitar',
    rarity: 'epic',
    stats: {
      rockBonus: 0.35,
      metalBonus: 0.25,
      qualityMultiplier: 1.3
    },
    requiredLevel: 6,
    value: 1000,
    description: 'Heavy, powerful electric guitar',
    sourceMusician: 'led_zeppelin',
    craftingMaterials: [
      { item: 'mahogany_wood', quantity: 6 },
      { item: 'strings', quantity: 6 },
      { item: 'humbucker_pickup', quantity: 2 }
    ]
  },

  // ============ KEYBOARDS ============
  {
    id: 'basic_keyboard',
    name: 'Basic Keyboard',
    type: 'keyboard',
    rarity: 'common',
    stats: {
      popBonus: 0.1,
      qualityMultiplier: 1.0
    },
    requiredLevel: 1,
    value: 150,
    description: 'Simple electronic keyboard',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'electronic_parts', quantity: 5 },
      { item: 'keys', quantity: 49 }
    ]
  },

  {
    id: 'grand_piano',
    name: 'Steinway Grand Piano',
    type: 'keyboard',
    rarity: 'legendary',
    stats: {
      classicalBonus: 0.4,
      jazzBonus: 0.3,
      qualityMultiplier: 1.5
    },
    requiredLevel: 8,
    value: 5000,
    description: 'The finest acoustic piano in the world',
    sourceMusician: 'chopin',
    craftingMaterials: [
      { item: 'fine_wood', quantity: 20 },
      { item: 'strings', quantity: 230 },
      { item: 'ivory_keys', quantity: 88 }
    ]
  },

  {
    id: 'moog_synthesizer',
    name: 'Moog Synthesizer',
    type: 'keyboard',
    rarity: 'epic',
    stats: {
      electronicBonus: 0.35,
      experimentalBonus: 0.25,
      qualityMultiplier: 1.3
    },
    requiredLevel: 7,
    value: 1500,
    description: 'Iconic analog synthesizer',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'electronic_parts', quantity: 15 },
      { item: 'oscillators', quantity: 3 },
      { item: 'filters', quantity: 2 }
    ]
  },

  // ============ DRUMS ============
  {
    id: 'basic_drum_kit',
    name: 'Basic Drum Kit',
    type: 'drums',
    rarity: 'common',
    stats: {
      rockBonus: 0.1,
      qualityMultiplier: 1.0
    },
    requiredLevel: 2,
    value: 300,
    description: 'Standard 5-piece drum kit',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'drum_shells', quantity: 5 },
      { item: 'cymbals', quantity: 3 },
      { item: 'drum_heads', quantity: 10 }
    ]
  },

  {
    id: 'jazz_drum_kit',
    name: 'Jazz Drum Kit',
    type: 'drums',
    rarity: 'rare',
    stats: {
      jazzBonus: 0.25,
      swingBonus: 0.2,
      qualityMultiplier: 1.2
    },
    requiredLevel: 4,
    value: 600,
    description: 'Brushes-ready jazz kit with warm tones',
    sourceMusician: 'ellington',
    craftingMaterials: [
      { item: 'maple_shells', quantity: 4 },
      { item: 'cymbals', quantity: 4 },
      { item: 'brushes', quantity: 2 }
    ]
  },

  // ============ BRASS ============
  {
    id: 'trumpet',
    name: 'Trumpet',
    type: 'brass',
    rarity: 'uncommon',
    stats: {
      jazzBonus: 0.2,
      classicalBonus: 0.15,
      qualityMultiplier: 1.1
    },
    requiredLevel: 3,
    value: 400,
    description: 'Bright, powerful brass instrument',
    sourceMusician: 'armstrong',
    craftingMaterials: [
      { item: 'brass', quantity: 5 },
      { item: 'valves', quantity: 3 }
    ]
  },

  {
    id: 'saxophone',
    name: 'Saxophone',
    type: 'brass',
    rarity: 'rare',
    stats: {
      jazzBonus: 0.3,
      soulBonus: 0.2,
      qualityMultiplier: 1.2
    },
    requiredLevel: 4,
    value: 700,
    description: 'Smooth, versatile woodwind',
    sourceMusician: 'parker',
    craftingMaterials: [
      { item: 'brass', quantity: 7 },
      { item: 'keys', quantity: 23 },
      { item: 'reed', quantity: 1 }
    ]
  },

  // ============ MICROPHONES ============
  {
    id: 'basic_mic',
    name: 'Basic Microphone',
    type: 'microphone',
    rarity: 'common',
    stats: {
      qualityMultiplier: 1.0,
      fanMultiplier: 1.0
    },
    requiredLevel: 1,
    value: 50,
    description: 'Standard dynamic microphone',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'electronic_parts', quantity: 2 },
      { item: 'diaphragm', quantity: 1 }
    ]
  },

  {
    id: 'condenser_mic',
    name: 'Condenser Microphone',
    type: 'microphone',
    rarity: 'rare',
    stats: {
      qualityMultiplier: 1.25,
      fanMultiplier: 1.15,
      popBonus: 0.2
    },
    requiredLevel: 5,
    value: 500,
    description: 'High-quality studio microphone',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'electronic_parts', quantity: 5 },
      { item: 'capsule', quantity: 1 },
      { item: 'phantom_power', quantity: 1 }
    ]
  },

  // ============ STUDIO EQUIPMENT ============
  {
    id: 'home_studio',
    name: 'Basic Home Studio',
    type: 'studio',
    rarity: 'common',
    stats: {
      qualityMultiplier: 1.0,
      fanMultiplier: 1.0
    },
    requiredLevel: 1,
    value: 0,
    description: 'Your bedroom setup',
    sourceMusician: null,
    craftingMaterials: []
  },

  {
    id: 'pro_equipment',
    name: 'Professional Equipment',
    type: 'studio',
    rarity: 'rare',
    stats: {
      qualityMultiplier: 1.2,
      fanMultiplier: 1.15
    },
    requiredLevel: 3,
    value: 1000,
    description: 'Pro-level recording gear',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'audio_interface', quantity: 1 },
      { item: 'monitors', quantity: 2 },
      { item: 'cables', quantity: 10 }
    ]
  },

  {
    id: 'studio_grade',
    name: 'Studio-Grade Setup',
    type: 'studio',
    rarity: 'epic',
    stats: {
      qualityMultiplier: 1.5,
      fanMultiplier: 1.3
    },
    requiredLevel: 6,
    value: 3000,
    description: 'Commercial studio quality',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'mixing_console', quantity: 1 },
      { item: 'studio_monitors', quantity: 2 },
      { item: 'outboard_gear', quantity: 5 },
      { item: 'acoustic_treatment', quantity: 20 }
    ]
  },

  // ============ STRINGS ============
  {
    id: 'violin',
    name: 'Violin',
    type: 'strings',
    rarity: 'uncommon',
    stats: {
      classicalBonus: 0.2,
      folkBonus: 0.15,
      qualityMultiplier: 1.1
    },
    requiredLevel: 3,
    value: 500,
    description: 'Elegant bowed string instrument',
    sourceMusician: 'vivaldi',
    craftingMaterials: [
      { item: 'fine_wood', quantity: 3 },
      { item: 'strings', quantity: 4 },
      { item: 'bow', quantity: 1 }
    ]
  },

  {
    id: 'bass_guitar',
    name: 'Electric Bass',
    type: 'bass',
    rarity: 'uncommon',
    stats: {
      funkBonus: 0.25,
      rockBonus: 0.15,
      qualityMultiplier: 1.15
    },
    requiredLevel: 3,
    value: 400,
    description: 'Essential rhythm section instrument',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'wood', quantity: 4 },
      { item: 'strings', quantity: 4 },
      { item: 'bass_pickup', quantity: 2 }
    ]
  },

  // ============ ELECTRONIC DEVICES ============
  {
    id: 'drum_machine',
    name: 'Drum Machine',
    type: 'electronic',
    rarity: 'rare',
    stats: {
      electronicBonus: 0.25,
      hip_hopBonus: 0.2,
      qualityMultiplier: 1.2
    },
    requiredLevel: 4,
    value: 600,
    description: 'Programmable electronic drums',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'electronic_parts', quantity: 10 },
      { item: 'pads', quantity: 16 },
      { item: 'sequencer', quantity: 1 }
    ]
  },

  {
    id: 'sampler',
    name: 'MPC Sampler',
    type: 'electronic',
    rarity: 'epic',
    stats: {
      hip_hopBonus: 0.35,
      electronicBonus: 0.25,
      qualityMultiplier: 1.3
    },
    requiredLevel: 6,
    value: 1200,
    description: 'Iconic hip-hop production tool',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'electronic_parts', quantity: 15 },
      { item: 'pads', quantity: 16 },
      { item: 'memory', quantity: 8 }
    ]
  },

  {
    id: 'turntables',
    name: 'DJ Turntables',
    type: 'electronic',
    rarity: 'rare',
    stats: {
      hip_hopBonus: 0.3,
      electronicBonus: 0.2,
      qualityMultiplier: 1.2
    },
    requiredLevel: 5,
    value: 800,
    description: 'Scratch and mix like a pro',
    sourceMusician: null,
    craftingMaterials: [
      { item: 'turntable_deck', quantity: 2 },
      { item: 'mixer', quantity: 1 },
      { item: 'needles', quantity: 2 }
    ]
  }
];

/**
 * Crafting materials definitions
 */
export const materials = {
  // Basic materials
  wood: { name: 'Wood', rarity: 'common', value: 5 },
  strings: { name: 'Guitar Strings', rarity: 'common', value: 2 },
  electronic_parts: { name: 'Electronic Parts', rarity: 'common', value: 10 },
  
  // Uncommon materials
  mahogany_wood: { name: 'Mahogany Wood', rarity: 'uncommon', value: 15 },
  maple_shells: { name: 'Maple Drum Shells', rarity: 'uncommon', value: 20 },
  brass: { name: 'Brass', rarity: 'uncommon', value: 12 },
  
  // Rare materials
  fine_wood: { name: 'Fine Wood', rarity: 'rare', value: 30 },
  electric_pickup: { name: 'Electric Pickup', rarity: 'rare', value: 25 },
  humbucker_pickup: { name: 'Humbucker Pickup', rarity: 'rare', value: 35 },
  
  // Epic materials
  ivory_keys: { name: 'Ivory Keys', rarity: 'epic', value: 50 },
  oscillators: { name: 'Oscillators', rarity: 'epic', value: 40 },
  mixing_console: { name: 'Mixing Console', rarity: 'epic', value: 200 },
  
  // Specific parts
  cymbals: { name: 'Cymbals', rarity: 'common', value: 15 },
  drum_heads: { name: 'Drum Heads', rarity: 'common', value: 5 },
  drum_shells: { name: 'Drum Shells', rarity: 'common', value: 20 },
  valves: { name: 'Trumpet Valves', rarity: 'uncommon', value: 8 },
  keys: { name: 'Keys', rarity: 'common', value: 1 },
  reed: { name: 'Reed', rarity: 'common', value: 3 },
  diaphragm: { name: 'Microphone Diaphragm', rarity: 'uncommon', value: 15 },
  capsule: { name: 'Condenser Capsule', rarity: 'rare', value: 30 },
  phantom_power: { name: 'Phantom Power Supply', rarity: 'rare', value: 25 },
  audio_interface: { name: 'Audio Interface', rarity: 'rare', value: 50 },
  monitors: { name: 'Studio Monitors', rarity: 'rare', value: 40 },
  cables: { name: 'Cables', rarity: 'common', value: 2 },
  studio_monitors: { name: 'High-End Studio Monitors', rarity: 'epic', value: 100 },
  outboard_gear: { name: 'Outboard Gear', rarity: 'epic', value: 60 },
  acoustic_treatment: { name: 'Acoustic Treatment', rarity: 'rare', value: 20 },
  bow: { name: 'Bow', rarity: 'uncommon', value: 25 },
  bass_pickup: { name: 'Bass Pickup', rarity: 'uncommon', value: 20 },
  pads: { name: 'Drum Pads', rarity: 'uncommon', value: 5 },
  sequencer: { name: 'Sequencer', rarity: 'rare', value: 40 },
  memory: { name: 'Memory Chips', rarity: 'rare', value: 15 },
  turntable_deck: { name: 'Turntable Deck', rarity: 'rare', value: 60 },
  mixer: { name: 'DJ Mixer', rarity: 'rare', value: 80 },
  needles: { name: 'Turntable Needles', rarity: 'uncommon', value: 10 },
  brushes: { name: 'Jazz Brushes', rarity: 'uncommon', value: 15 },
  filters: { name: 'Audio Filters', rarity: 'rare', value: 35 }
};

/**
 * Get instrument by ID
 */
export const getInstrumentById = (id) => {
  return instruments.find(i => i.id === id);
};

/**
 * Get instruments by type
 */
export const getInstrumentsByType = (type) => {
  return instruments.filter(i => i.type === type);
};

/**
 * Get instruments by rarity
 */
export const getInstrumentsByRarity = (rarity) => {
  return instruments.filter(i => i.rarity === rarity);
};

/**
 * Get craftable instruments (have crafting materials)
 */
export const getCraftableInstruments = () => {
  return instruments.filter(i => i.craftingMaterials && i.craftingMaterials.length > 0);
};

