# Module Planning: Supplier/Farmer Management ## Overview This module expands the basic member information into a full profile for producers (farmers/suppliers). It allows the system to track where products come from, verify farmer credentials, and manage relationships with cooperatives. ## Data Models ### `FarmerProfile` Extended details for a producer. - `id` (Primary Key) - `hashkey` (String, Unique) - `user_id` (Foreign Key to `users`) - `organization_id` (Foreign Key to `organizations/cooperatives`, nullable) - `farm_name` (String) - `farm_location` (Point/Coordinates or Text) - `main_crops` (JSON/Array of strings) - `verification_status` (Enum: `UNVERIFIED`, `PENDING`, `VERIFIED`, `REJECTED`) - `certification_details` (JSON) - `created_by` (Foreign Key to `users`) - `updated_by` (Foreign Key to `users`) - `is_active` (Boolean) ### `FarmerProductMapping` Links farmers to the specific products they supply to stores. - `farmer_id` (Foreign Key to `farmer_profiles`) - `product_id` (Foreign Key to `products`) - `supply_capacity` (Decimal/Unit) - `harvest_season` (String) ## Core Workflows 1. **Farmer Registration**: Capturing the detailed "Member Information" as seen in the README. 2. **Profile Verification**: Admin review of submitted documents and farm location. 3. **Product Sourcing**: Linking products in the store to their original farmer sources for traceability. ## API Endpoints (Proposed) | Endpoint | Method | Description | |----------|--------|-------------| | `/api/farmers` | GET | List all farmers (filtered by org/admin) | | `/api/farmers` | POST | Register a new farmer profile | | `/api/farmers/{hashkey}` | GET | Get farmer details | | `/api/farmers/{hashkey}/verify` | PATCH | Update verification status | ## UI Components (Vue) - **FarmerProfileEdit.vue**: Comprehensive form for farmer details. - **FarmerDirectory.vue**: Searchable list of registered farmers. - **VerificationDashboard.vue**: Admin interface for approving farmer applications.