Glossary
Domain terminology for the Vrida product.
Inventory & Plants
- Plant master — A record representing a species/cultivar (e.g., Acer palmatum 'Bloodgood'). One plant master can have many variants.
- Variant — A sellable form of a plant — specific size (1gal, 5gal, 15gal). Has its own SKU, price, cost, qty.
- Hard good — Non-plant product (pots, soil, mulch, fertilizer, tools, decor).
- Zone — A named, structured location inside a site (greenhouse A, north yard, retail floor). Has a structured type.
- Bin / sub-zone — A specific sub-location within a zone (Row 7, Bench 12-A). Optional.
- Site — A physical location (a single nursery property). Tenants can have one or many.
- Lot / batch — A traceable group of plants from the same source/sow date (v1.5+).
- Stock — The qty currently held in a variant at a specific zone/bin.
- On-hand — Total physical stock.
- Reserved — Stock committed to pending orders, not available for walk-in sale.
- Available — On-hand minus reserved.
- Cycle count / stock take — Periodic physical inventory verification.
- Dead count — Inventory marked as no longer sellable (dead, damaged, theft).
- Receiving — Process of accepting inventory from a vendor and incrementing stock.
Sales & Customers
- Sale — Completed POS transaction (walk-in checkout).
- Order / reservation — Future-dated transaction (phone hold, contractor pre-order).
- Charge account — Customer credit relationship (typically landscape contractors).
- Customer — End consumer who purchases plants from a nursery. Uses the Customer-facing App. NOT a nursery owner or staff member. May connect to multiple nurseries.
- Tenant — A nursery business using Vrida (SaaS customer of Vrida). Operates POS, manages inventory, etc.
- Tenant user — Staff member of a tenant; can be owner, manager, cashier, etc.
- Customer-facing App — The mobile/web app used by end consumers (Customers), NOT the tenant POS/admin app.
Procurement
- Vendor / supplier — Where the nursery buys plants/hard goods from.
- Purchase order (PO) — A formal order issued to a vendor.
- Three-way match — PO + Receipt + Invoice reconciliation.
- Drop ship — PO where vendor ships directly to customer.
Production
- Propagation — Self-growing plants from cuttings/seeds.
- Crop plan — Production schedule from sow to ready-to-sell.
- Crop lot — A specific batch in production.
Platform
- Tenant — See "Tenant" under Sales & Customers above.
- Site — A physical location of a tenant.
- Tier — Subscription level (Starter / Pro / Enterprise).
- Audit log — Immutable record of all changes.
- Snapshot — Point-in-time state of inventory (daily).
Tech
- RLS — Row-Level Security (Postgres feature for tenant isolation).
- Schema — Postgres namespace (one per module).
- Service — Public API class for a module.
- DTO — Data Transfer Object (typed shape passed between modules).
Architecture (revised 2026-05-13 per Nursery-Only Focus)
Active terms
- Platform — Vrida's control plane; 16 tables managing nurseries as Vrida's customers (tenant identity, subscriptions, billing, entitlements, onboarding, usage, legal, CS). See PROJECT_DECISIONS "Platform Module (Locked 2026-05-13)".
- Party — Unified entity term for any participant in a transaction (customer, vendor, contractor, internal contact). Note: no longer a single "party" table in a core schema — masters live in owning modules (customer in CRM, vendor in Purchasing). The term is retained as a conceptual unification.
- AIService — The single abstraction over AWS Bedrock owned by the AI / Intelligence module. Routes all model calls, owns rate limits, fallback paths, and (later) RAG corpus. No module calls Bedrock directly.
- PaymentsService — The single abstraction over Stripe owned by the Payments module. Covers Stripe Terminal (in-person), Stripe Customer / subscriptions (SaaS billing), and Stripe Connect (per-site payment routing). No module calls Stripe APIs directly.
- Connector — An external-system integration component owned by the Integrations module. QuickBooks, Shopify, Sage, Xero, workforce tools, etc., all follow one connector pattern. No nursery module imports a vendor SDK directly.
- Foundation milestone — A pre-v1.0 milestone gating v1.0 nursery-module build. Covers building Platform (16 tables) + Identity + Payments + Integrations + AI + Files + Search, and refactoring three remaining nursery modules (CRM customer tenant-scoping cleanup, Customer App layering cleanup, Admin Identity + Integrations extractions). The Inventory item-first refactor is cancelled (item is nursery-first). v1.0 nursery-module build does not proceed until Foundation is complete and verified. See ROADMAP.md "Foundation (pre-v1.0)".
tenant_entitlement— Platform table that is the source of truth for why a tenant has access to a feature. Records source_type (tier, addon, override, beta, contract) + the source reference. Absorbs the priorsubscription_addonconcept.tenant_setup_task— Platform table combining system provisioning (schema created, storage initialized, Stripe set up) and tenant-facing onboarding milestones (email verified, business profile, inventory imported via AI, first sale, go-live) into one tracking table. Each row carriestask_category,is_customer_visible, dependencies, failure tracking.- Import pipeline — AI-powered self-serve data loading in the Integrations module (
import_job,import_file,import_record). Tenant uploads files → AIService extracts and maps → flagged records reviewed → confirmed records loaded into target module tables. Milestones tracked in Platform'stenant_setup_task. - Billing split — SaaS subscription (Vrida → tenant) lives in Platform; customer-facing A/R (tenant → their customers) lives in Billing module (Module 11).
charge_accountis owned by Billing, not CRM.
Retired terms (kept here for traceability — do not use in new design)
Core— RETIRED. No generic-primitives layer. Masters live in owning modules.Vertical extension— RETIRED. Vrida is nursery-only; there is no extension/non-extension split. Nursery-specific tables live in their owning modules directly.Generic item /— RETIRED. Item is nursery-first and lives in Inventory; plant fields are on item directly.core.itemPlant profile— RETIRED. Noplant_profileindirection.Plant test (placement rule)— RETIRED. The "would this make sense for a business that has never heard of a plant" rule is no longer applied; Vrida is nursery-only.