Commit Graph

6 Commits

Author SHA1 Message Date
florian.berthold 963f307cfc Add cross-domain interactions (migration 017)
Generic directed links between plant/fungus/insect entities (subject_kind/slug,
predicate, object_kind/slug). Predicates: pollinates, feeds_on, preys_on,
parasitizes, attracts, mycorrhizal_with, grows_on. Interaction model,
db/interactions.rs (flexible filtered query + per-entity lookup, upsert),
/api/v1/interactions + /{kind}/{ref}/interactions routes. Wired into
stats/export/llms. seed_interactions.py: derives preys_on links + curated
pollinator/mycorrhizal/pest links (existence-checked).
2026-06-05 22:01:56 +02:00
florian.berthold 62c2aecc4e Add seed_insects.py (15 curated beneficial + pest insects) 2026-06-05 21:49:12 +02:00
florian.berthold 2cfa57a188 Add insect domain + fungi summary blurb fallback + seed_fungi
Insect domain (migration 016): insects table with order/family taxonomy,
beneficial/pest role, beneficial_roles, pest_severity, host_plant_slugs,
preys_on, life cycle, active months, attracted_by (cross-domain plant links).
Insect+CreateInsect models, db/insects.rs CRUD (role/order filters),
api/insects.rs, /api/v1/insects routes + summary. Wired into stats/export/llms.
Fungus summary now falls back to culinary_uses/habitat for the blurb.
seed_fungi.py committed (15 curated mushrooms).
2026-06-05 21:46:28 +02:00
florian.berthold 91aa9cb733 Enrich: NaturaDB writes structured wildlife fields + full pagination; min_temp from USDA zone
- scrape_naturadb.py: write structured count fields (nectar/pollen/bee/
  butterfly/caterpillar/hoverfly/beetle/bird/mammal), native_status,
  naturadb_tags (not just the text wildlife_value); paginate all species;
  env-overridable base/token; only fill empty fields.
- enrich_botanical.py: derive min_temp from USDA hardiness zone min temp.
2026-06-05 18:18:00 +02:00
florian.berthold 5992c486ae Add deterministic botanical enrichment (hardiness_zone_at, nitrogen_fixer)
Fills two species fields from authoritative botany, no external scraping:
- hardiness_zone_at = hardiness_zone_usda (Austria uses the USDA zone system)
- nitrogen_fixer: Fabaceae + actinorhizal genera -> true, else false
Idempotent GET->merge->PUT via the API. Brought both fields 0/4% -> 100%.
2026-06-05 18:01:48 +02:00
florian.berthold 0ef902cc91 Add scraper and enrichment scripts to tools/ directory 2026-03-16 11:10:18 +01:00