Initial HerbAPI implementation

Rust/Axum REST API (herbapi-api) with PostgreSQL, S3/Garage, OIDC auth.
Dioxus 0.7 WASM frontend (herbapi-ui) with sidebar layout and botanical reference style.
9 SQL migrations covering families, species, cultivars, suppliers, companions, images, users, API tokens.
This commit is contained in:
2026-03-14 00:02:29 +01:00
commit 484979ad53
56 changed files with 12792 additions and 0 deletions
@@ -0,0 +1,16 @@
CREATE TYPE companion_type AS ENUM ('beneficial', 'neutral', 'antagonistic');
CREATE TABLE companion_relationships (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
species_a_id UUID NOT NULL REFERENCES species(id) ON DELETE CASCADE,
species_b_id UUID NOT NULL REFERENCES species(id) ON DELETE CASCADE,
relationship companion_type NOT NULL,
mechanism TEXT,
source_url TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(species_a_id, species_b_id),
CHECK (species_a_id < species_b_id)
);
CREATE INDEX idx_companion_a ON companion_relationships(species_a_id);
CREATE INDEX idx_companion_b ON companion_relationships(species_b_id);