-- 1. CLEAR OLD DATA (To avoid duplicates) TRUNCATE TABLE plants; -- 2. INSERT DATA WITH FULL RANGES (Min/Max/Optimal) INSERT INTO plants (id, common_names, scientific_name, family, description, sources, lifecycle) VALUES -- ======================================================= -- GROUP 1: LEAFY GREENS (Full Cycle Compatible) -- ======================================================= ( 'lettuce', ARRAY['Lettuce', 'Selada', 'Selada Keriting', 'Grand Rapids'], 'Lactuca sativa', 'Asteraceae', 'Standard loose-leaf lettuce. High value, fast harvest.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 2, "temp_min_c": 18, "temp_max_c": 24, "temp_optimal_c": 20, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 3, "day_end": 14, "temp_min_c": 20, "temp_max_c": 26, "temp_optimal_c": 24, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 8000, "light_lux_max": 12000 }, "vegetative": { "day_start": 15, "day_end": 35, "temp_min_c": 18, "temp_max_c": 26, "temp_optimal_c": 24, "humidity_min_pct": 60, "humidity_max_pct": 75, "light_lux_min": 12000, "light_lux_max": 15000, "notes": "Harvest phase." } }'::jsonb ), ( 'pak_choy', ARRAY['Pak Choy', 'Pakcoy', 'Bok Choy', 'Nauli F1', 'Naura F1'], 'Brassica rapa chinensis', 'Brassicaceae', 'Robust leafy green, very fast turnover.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 2, "temp_min_c": 25, "temp_max_c": 30, "temp_optimal_c": 27, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 3, "day_end": 12, "temp_min_c": 24, "temp_max_c": 29, "temp_optimal_c": 27, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 10000, "light_lux_max": 15000 }, "vegetative": { "day_start": 13, "day_end": 30, "temp_min_c": 24, "temp_max_c": 29, "temp_optimal_c": 27, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 12000, "light_lux_max": 18000 } }'::jsonb ), ( 'spinach_amaranth', ARRAY['Spinach', 'Bayam', 'Bayam Hijau', 'Maestro', 'Mira'], 'Amaranthus tricolor', 'Amaranthaceae', 'Tropical spinach (Amaranth). Loves heat and light.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 3, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 28, "humidity_min_pct": 85, "humidity_max_pct": 95, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 4, "day_end": 10, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 12000, "light_lux_max": 15000 }, "vegetative": { "day_start": 11, "day_end": 25, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 60, "humidity_max_pct": 80, "light_lux_min": 15000, "light_lux_max": 20000 } }'::jsonb ), ( 'mustard_greens', ARRAY['Mustard Greens', 'Caisim', 'Sawi Hijau', 'Sawi Pahit', 'Shinta', 'Tosakan', 'Morakot'], 'Brassica juncea', 'Brassicaceae', 'Standard market mustard green.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 2, "temp_min_c": 25, "temp_max_c": 30, "temp_optimal_c": 27, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 3, "day_end": 12, "temp_min_c": 25, "temp_max_c": 30, "temp_optimal_c": 27, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 10000, "light_lux_max": 15000 }, "vegetative": { "day_start": 13, "day_end": 35, "temp_min_c": 24, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 65, "humidity_max_pct": 85, "light_lux_min": 15000, "light_lux_max": 20000 } }'::jsonb ), ( 'kailan', ARRAY['Kailan', 'Chinese Kale', 'Nita'], 'Brassica oleracea alboglabra', 'Brassicaceae', 'Thick stemmed brassica.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 3, "temp_min_c": 23, "temp_max_c": 28, "temp_optimal_c": 25, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 4, "day_end": 14, "temp_min_c": 23, "temp_max_c": 28, "temp_optimal_c": 25, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 12000, "light_lux_max": 15000 }, "vegetative": { "day_start": 15, "day_end": 45, "temp_min_c": 22, "temp_max_c": 28, "temp_optimal_c": 25, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 15000, "light_lux_max": 20000 } }'::jsonb ), ( 'chinese_cabbage', ARRAY['Chinese Cabbage', 'Sawi Putih', 'Petsai', 'Leony'], 'Brassica rapa pekinensis', 'Brassicaceae', 'Harvest as Baby Cabbage.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 3, "temp_min_c": 22, "temp_max_c": 26, "temp_optimal_c": 24, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 4, "day_end": 14, "temp_min_c": 22, "temp_max_c": 26, "temp_optimal_c": 24, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 10000, "light_lux_max": 15000 }, "vegetative": { "day_start": 15, "day_end": 40, "temp_min_c": 20, "temp_max_c": 25, "temp_optimal_c": 22, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 15000, "light_lux_max": 20000 } }'::jsonb ), ( 'water_spinach', ARRAY['Water Spinach', 'Kangkung', 'Serimpi', 'Bangkok LP-1'], 'Ipomoea aquatica', 'Convolvulaceae', 'Extremely fast growing.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 2, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 28, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 3, "day_end": 7, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 28, "humidity_min_pct": 80, "humidity_max_pct": 95, "light_lux_min": 12000, "light_lux_max": 15000 }, "vegetative": { "day_start": 8, "day_end": 21, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 70, "humidity_max_pct": 90, "light_lux_min": 15000, "light_lux_max": 25000 } }'::jsonb ), ( 'celery', ARRAY['Celery', 'Seledri', 'Daun Sop', 'Amigo', 'Bamby'], 'Apium graveolens', 'Apiaceae', 'Thrives in cooler temps.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 10, "temp_min_c": 18, "temp_max_c": 24, "temp_optimal_c": 20, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 1000, "light_lux_max": 5000 }, "seedling": { "day_start": 11, "day_end": 30, "temp_min_c": 18, "temp_max_c": 24, "temp_optimal_c": 20, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 10000, "light_lux_max": 14000 }, "vegetative": { "day_start": 31, "day_end": 60, "temp_min_c": 16, "temp_max_c": 22, "temp_optimal_c": 18, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 15000, "light_lux_max": 20000 } }'::jsonb ), ( 'green_onion', ARRAY['Green Onion', 'Bawang Daun', 'Blaze'], 'Allium fistulosum', 'Amaryllidaceae', 'Grown for leaves.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 6, "temp_min_c": 22, "temp_max_c": 28, "temp_optimal_c": 25, "humidity_min_pct": 85, "humidity_max_pct": 95, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 7, "day_end": 28, "temp_min_c": 22, "temp_max_c": 28, "temp_optimal_c": 25, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 12000, "light_lux_max": 15000 }, "vegetative": { "day_start": 29, "day_end": 70, "temp_min_c": 22, "temp_max_c": 28, "temp_optimal_c": 25, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 15000, "light_lux_max": 25000 } }'::jsonb ), -- ======================================================= -- GROUP 2: NURSERY ONLY (Fruiting Crops) -- ======================================================= ( 'chili_pepper', ARRAY['Chili', 'Cabai', 'Cabe', 'Bara F1', 'Pilar F1', 'Lado F1', 'Pelita', 'Baja', 'Gada Evo', 'Rawita F1', 'Rajo'], 'Capsicum annuum', 'Solanaceae', 'Nursery Phase Only in PGC.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 7, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 8, "day_end": 30, "temp_min_c": 25, "temp_max_c": 29, "temp_optimal_c": 27, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 14000, "light_lux_max": 20000 }, "vegetative": { "day_start": 31, "day_end": 60, "temp_min_c": 26, "temp_max_c": 32, "temp_optimal_c": 28, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 30000, "light_lux_max": 50000, "notes": "Requires full sun." } }'::jsonb ), ( 'tomato', ARRAY['Tomato', 'Tomat', 'Servo F1', 'Agatha', 'Gustavi', 'Gammara'], 'Solanum lycopersicum', 'Solanaceae', 'Nursery Phase Only in PGC.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 5, "temp_min_c": 24, "temp_max_c": 28, "temp_optimal_c": 26, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 6, "day_end": 25, "temp_min_c": 22, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 14000, "light_lux_max": 20000 }, "vegetative": { "day_start": 26, "day_end": 50, "temp_min_c": 22, "temp_max_c": 29, "temp_optimal_c": 26, "humidity_min_pct": 60, "humidity_max_pct": 75, "light_lux_min": 30000, "light_lux_max": 50000, "notes": "Requires full sun." } }'::jsonb ), ( 'melon', ARRAY['Melon', 'Muskmelon', 'Alina', 'Gracia', 'Alisha', 'New Madesta'], 'Cucumis melo', 'Cucurbitaceae', 'High value F1 seeds.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 3, "temp_min_c": 28, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 4, "day_end": 14, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 75, "humidity_max_pct": 85, "light_lux_min": 12000, "light_lux_max": 18000 }, "vegetative": { "day_start": 15, "day_end": 35, "temp_min_c": 28, "temp_max_c": 35, "temp_optimal_c": 30, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 40000, "light_lux_max": 60000, "notes": "Requires strong sunlight." } }'::jsonb ), ( 'watermelon', ARRAY['Watermelon', 'Semangka', 'Amara', 'Baginda F1', 'Palguna', 'Dewangga'], 'Citrullus lanatus', 'Cucurbitaceae', 'Move out quickly.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 4, "temp_min_c": 28, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 5, "day_end": 15, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 75, "humidity_max_pct": 85, "light_lux_min": 12000, "light_lux_max": 18000 }, "vegetative": { "day_start": 16, "day_end": 40, "temp_min_c": 28, "temp_max_c": 35, "temp_optimal_c": 30, "humidity_min_pct": 60, "humidity_max_pct": 75, "light_lux_min": 40000, "light_lux_max": 60000 } }'::jsonb ), ( 'cucumber', ARRAY['Cucumber', 'Mentimun', 'Timun', 'Bandana', 'Batara', 'Erina'], 'Cucumis sativus', 'Cucurbitaceae', 'Very fast growth.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 2, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 3, "day_end": 12, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 80, "humidity_max_pct": 90, "light_lux_min": 12000, "light_lux_max": 18000 }, "vegetative": { "day_start": 13, "day_end": 30, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 35000, "light_lux_max": 50000 } }'::jsonb ), ( 'eggplant', ARRAY['Eggplant', 'Terong', 'Lezata', 'Hitavi', 'Yuvita'], 'Solanum melongena', 'Solanaceae', 'Heat lover.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 7, "temp_min_c": 27, "temp_max_c": 31, "temp_optimal_c": 29, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 8, "day_end": 35, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 14000, "light_lux_max": 20000 }, "vegetative": { "day_start": 36, "day_end": 60, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 60, "humidity_max_pct": 75, "light_lux_min": 30000, "light_lux_max": 50000 } }'::jsonb ), ( 'pumpkin', ARRAY['Pumpkin', 'Squash', 'Labu', 'Labumadu', 'Suprema'], 'Cucurbita moschata', 'Cucurbitaceae', 'Vigorous seedling.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 4, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 5, "day_end": 14, "temp_min_c": 24, "temp_max_c": 28, "temp_optimal_c": 26, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 12000, "light_lux_max": 18000 }, "vegetative": { "day_start": 15, "day_end": 40, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 35000, "light_lux_max": 50000 } }'::jsonb ), ( 'cauliflower', ARRAY['Cauliflower', 'Kembang Kol', 'Aquina', 'PM 126'], 'Brassica oleracea botrytis', 'Brassicaceae', 'Nursery only.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 4, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 5, "day_end": 21, "temp_min_c": 22, "temp_max_c": 26, "temp_optimal_c": 24, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 12000, "light_lux_max": 15000 }, "vegetative": { "day_start": 22, "day_end": 50, "temp_min_c": 20, "temp_max_c": 24, "temp_optimal_c": 22, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 25000, "light_lux_max": 40000 } }'::jsonb ), ( 'cabbage', ARRAY['Cabbage', 'Kubis', 'Kol', 'Talenta'], 'Brassica oleracea capitata', 'Brassicaceae', 'Nursery only.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 3, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 4, "day_end": 21, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 75, "humidity_max_pct": 90, "light_lux_min": 12000, "light_lux_max": 15000 }, "vegetative": { "day_start": 22, "day_end": 60, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 65, "humidity_max_pct": 80, "light_lux_min": 25000, "light_lux_max": 40000 } }'::jsonb ), ( 'shallot', ARRAY['Shallot', 'Bawang Merah', 'Sanren', 'Lokananta'], 'Allium cepa var. aggregatum', 'Amaryllidaceae', 'Long nursery phase.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 10, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 85, "humidity_max_pct": 95, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 11, "day_end": 42, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 14000, "light_lux_max": 18000 }, "vegetative": { "day_start": 43, "day_end": 70, "temp_min_c": 25, "temp_max_c": 29, "temp_optimal_c": 27, "humidity_min_pct": 60, "humidity_max_pct": 75, "light_lux_min": 30000, "light_lux_max": 50000 } }'::jsonb ), ( 'papaya', ARRAY['Papaya', 'Pepaya', 'Lovena'], 'Carica papaya', 'Caricaceae', 'Nursery only.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 14, "temp_min_c": 28, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 15, "day_end": 45, "temp_min_c": 26, "temp_max_c": 30, "temp_optimal_c": 28, "humidity_min_pct": 75, "humidity_max_pct": 85, "light_lux_min": 14000, "light_lux_max": 20000 }, "vegetative": { "day_start": 46, "day_end": 100, "temp_min_c": 28, "temp_max_c": 32, "temp_optimal_c": 30, "humidity_min_pct": 70, "humidity_max_pct": 80, "light_lux_min": 40000, "light_lux_max": 60000 } }'::jsonb ), ( 'marigold', ARRAY['Marigold', 'Bunga Tai Ayam', 'Golden Bloom', 'Maharani'], 'Tagetes erecta', 'Asteraceae', 'Refugia.', ARRAY['EWINDO Catalog'], '{ "germination": { "day_start": 0, "day_end": 4, "temp_min_c": 24, "temp_max_c": 28, "temp_optimal_c": 26, "humidity_min_pct": 90, "humidity_max_pct": 99, "light_lux_min": 0, "light_lux_max": 0 }, "seedling": { "day_start": 5, "day_end": 20, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 70, "humidity_max_pct": 85, "light_lux_min": 12000, "light_lux_max": 15000 }, "flowering": { "day_start": 21, "day_end": 60, "temp_min_c": 23, "temp_max_c": 27, "temp_optimal_c": 25, "humidity_min_pct": 60, "humidity_max_pct": 80, "light_lux_min": 30000, "light_lux_max": 50000 } }'::jsonb );