FERTILIZER_COMPONENTS = [ # Macros / bases { name: "Potassium Nitrate", formula: "KNO3", nno3: 13.50, k: 38.60 }, { name: "Calcium Nitrate", formula: "Ca(NO3)2·xH2O", nno3: 15.50, ca: 18.94 }, { name: "Ammonium Nitrate", formula: "NH4NO3", nno3: 13.50, nnh4: 13.50 }, # total N ≈ 27 { name: "Diammonium Phosphate", formula: "(NH4)2HPO4", p: 21.00 }, # NH4 can be added later if desired # Acids / buffers { name: "Nitric Acid 53%", formula: "HNO3", nno3: 11.70 }, { name: "Potassium Bicarbonate", formula: "KHCO3", k: 39.05 }, { name: "Calcium Carbonate", formula: "CaCO3", ca: 38.00 }, # K–Mg–S complex (Patentkali-type blend) { name: "Potassium Sulfate blend (K–Mg–S + NaCl)", formula: "K2SO4+MgSO4+NaCl", p: 0.44, k: 22.66, mg: 6.16, s: 17.77, na: 2.16, cl: 3.34 }, # Sulfates (micros / secondary) { name: "Magnesium Sulfate", formula: "MgSO4·7H2O", mg: 9.648, s: 13.016 }, { name: "Manganese Sulfate", formula: "MnSO4", s: 7.17, mn: 12.00 }, { name: "Zinc Sulfate (Fiza Zinc)", formula: "ZnSO4", zn: 12.00 }, # Chelates / traces { name: "Iron DTPA 11.8%", formula: "Fe-DTPA", fe: 11.80 }, { name: "HelioCopper (Cu chelate)", formula: "Cu-chelate", cu: 40.00 }, # Boron & Mo sources { name: "Boron–Molybdenum (Boronia LS)", formula: "B+Mo", b: 13.50, mo: 0.028 }, { name: "Boronia MO12 (10L)", formula: "B+Mn+Cu", b: 8.90, mn: 0.089, cu: 0.89 }, { name: "Sodium Molybdate", formula: "Na2MoO4", mo: 39.50 } ] FERTILIZER_COMPONENTS.each do |attrs| FertilizerComponent.find_or_create_by!(name: attrs[:name]) do |c| c.attributes = attrs end end puts "Fertilizer components: #{FertilizerComponent.count}"