# Frontend API Analysis - Executive Summary ## Document Location Complete analysis: `/home/user/bakery_ia/FRONTEND_API_TYPES_ANALYSIS.md` (1,741 lines) ## Quick Overview ### 1. RECIPE API **File**: `/home/user/bakery_ia/frontend/src/api/types/recipes.ts` **Hooks**: `/home/user/bakery_ia/frontend/src/api/hooks/recipes.ts` Key Types: RecipeCreate, RecipeUpdate, RecipeResponse, RecipeIngredientResponse, RecipeQualityConfiguration Key Hooks: - Query: useRecipe, useRecipes, useInfiniteRecipes, useRecipeStatistics, useRecipeCategories, useRecipeFeasibility - Mutation: useCreateRecipe, useUpdateRecipe, useDeleteRecipe, useArchiveRecipe, useDuplicateRecipe, useActivateRecipe --- ### 2. SUPPLIER API **File**: `/home/user/bakery_ia/frontend/src/api/types/suppliers.ts` **Hooks**: `/home/user/bakery_ia/frontend/src/api/hooks/suppliers.ts` Key Types: - Supplier: SupplierCreate, SupplierResponse, SupplierPriceListResponse - Purchase Order: PurchaseOrderCreate, PurchaseOrderResponse - Delivery: DeliveryCreate, DeliveryResponse - Performance: PerformanceMetric, Alert, Scorecard Key Hooks: - Supplier (8 query hooks): useSuppliers, useSupplier, useSupplierStatistics, useActiveSuppliers, etc. - Purchase Orders (2 query hooks): usePurchaseOrders, usePurchaseOrder - Deliveries (2 query hooks): useDeliveries, useDelivery - Performance (2 query hooks): useSupplierPerformanceMetrics, usePerformanceAlerts - Mutations (12 hooks): CRUD operations for all entities --- ### 3. INVENTORY/PRODUCT API **File**: `/home/user/bakery_ia/frontend/src/api/types/inventory.ts` **Hooks**: `/home/user/bakery_ia/frontend/src/api/hooks/inventory.ts` Key Types: - Ingredient: IngredientCreate, IngredientResponse - Stock: StockCreate, StockResponse - Stock Movement: StockMovementCreate, StockMovementResponse - Transformation: ProductTransformationCreate, ProductTransformationResponse - Food Safety: TemperatureLogResponse, FoodSafetyAlertResponse, FoodSafetyComplianceResponse - Dashboard: InventoryDashboardSummary, InventoryAnalytics Key Hooks: - Ingredients (4 query hooks): useIngredients, useIngredient, useIngredientsByCategory, useLowStockIngredients - Stock (6 query hooks): useStock, useStockByIngredient, useExpiringStock, useExpiredStock, useStockMovements, useStockAnalytics - Transformations (5 query hooks): useTransformations, useTransformation, useTransformationSummary, etc. - Mutations (13 hooks): CRUD + specialized operations like useStockOperations, useTransformationOperations --- ### 4. QUALITY TEMPLATE API **File**: `/home/user/bakery_ia/frontend/src/api/types/qualityTemplates.ts` **Hooks**: `/home/user/bakery_ia/frontend/src/api/hooks/qualityTemplates.ts` Key Types: - QualityCheckTemplate, QualityCheckTemplateCreate, QualityCheckTemplateUpdate - QualityCheckExecutionRequest, QualityCheckExecutionResponse - ProcessStageQualityConfig, RecipeQualityConfiguration Key Hooks: - Query (5 hooks): useQualityTemplates, useQualityTemplate, useQualityTemplatesForStage, useQualityTemplatesForRecipe, useDefaultQualityTemplates - Mutation (6 hooks): useCreateQualityTemplate, useUpdateQualityTemplate, useDeleteQualityTemplate, useDuplicateQualityTemplate, useExecuteQualityCheck, useValidateQualityTemplate --- ### 5. CUSTOMER ORDER API **File**: `/home/user/bakery_ia/frontend/src/api/types/orders.ts` **Hooks**: `/home/user/bakery_ia/frontend/src/api/hooks/orders.ts` Key Types: - Customer: CustomerCreate, CustomerResponse - Order: OrderCreate, OrderUpdate, OrderResponse - OrderItem: OrderItemCreate, OrderItemResponse - Dashboard: OrdersDashboardSummary - Analytics: DemandRequirements, BusinessModelDetection Key Hooks: - Query (7 hooks): useOrders, useOrder, useCustomers, useCustomer, useOrdersDashboard, useDemandRequirements, useBusinessModelDetection - Mutation (4 hooks): useCreateOrder, useUpdateOrderStatus, useCreateCustomer, useUpdateCustomer - Utility (1 hook): useInvalidateOrders --- ## CRITICAL MISALIGNMENTS IDENTIFIED ### 1. PAYMENT TERMS ENUM CONFLICT Location: `suppliers.ts` vs `orders.ts` **Suppliers PaymentTerms:** - COD, NET_15, NET_30, NET_45, NET_60, PREPAID, CREDIT_TERMS **Orders PaymentTerms:** - IMMEDIATE, NET_30, NET_60 **Impact**: Two different enums with same name in different contexts could cause confusion and data inconsistency. **Recommendation**: Unify these enums or clarify their separate domains. --- ### 2. DECIMAL VS NUMBER TYPE **Affected APIs**: Suppliers, Orders **Issue**: Backend uses `Decimal` for monetary values: - supplier.credit_limit - supplier.total_spent - customer.total_spent - customer.average_order_value **Frontend**: Uses `number` type **Impact**: Floating-point precision loss for currency calculations (e.g., $1.23 - $1.20 != $0.03) **Recommendation**: Implement a Decimal wrapper type for all currency fields. --- ### 3. STOCK FIELD NAME INCONSISTENCY **Locations**: - `StockCreate` interface defines: `unit_cost?: number` - `useStockOperations` hook uses: `unit_price` parameter **Impact**: Potential API validation errors if hook sends wrong field name. **Recommendation**: Audit backend to verify correct field name and update frontend accordingly. --- ### 4. PROCESS STAGE VS PRODUCTION STAGE CONFUSION **Quality Templates Define:** - MIXING, PROOFING, SHAPING, BAKING, COOLING, PACKAGING, FINISHING **Inventory Defines:** - RAW_INGREDIENT, PAR_BAKED, FULLY_BAKED, PREPARED_DOUGH, FROZEN_PRODUCT **Note**: These are intentionally different (quality control vs production) - correctly separated but documentation needed. --- ### 5. RECORD OVERUSE Multiple type definitions use `Record` for flexibility: - instructions - parameters - thresholds - scoring_criteria - custom_requirements - allergen_warnings **Risk**: Loose typing defeats TypeScript's safety benefits. **Recommendation**: Define specific interfaces for complex nested structures. --- ### 6. CREATED_BY FIELD HANDLING **Quality Templates**: `QualityCheckTemplateCreate` requires `created_by: string` **Issue**: Forms typically auto-fill from authenticated user context, not user input. **Recommendation**: Verify API makes this optional or frontend passes authenticated user ID. --- ### 7. PRODUCT CLASSIFICATION **Location**: inventory.ts - ProductSuggestionResponse, BatchClassificationResponse **Potential Issue**: These suggest AI-based classification but exact API endpoints may differ from implementation. **Recommendation**: Verify API contract matches suggestion response structure. --- ## STATISTICS Total TypeScript type definitions: **150+** Total React hooks: **80+** Total enums: **40+** ### By Domain: - Recipes: 20 types, 10 hooks - Suppliers: 35 types, 25 hooks - Inventory: 25 types, 20 hooks - Quality Templates: 12 types, 6 hooks - Orders/Customers: 18 types, 7 hooks --- ## KEY SERVICES LOCATION All services are located in: `/home/user/bakery_ia/frontend/src/api/services/` Main service files: - recipes.ts - suppliers.ts - inventory.ts - qualityTemplates.ts - orders.ts - procurement-service.ts - purchase_orders.ts - production.ts --- ## RECOMMENDATIONS FOR CLEANUP 1. **Priority 1 (Critical)** - Unify PaymentTerms enums - Fix Decimal type handling for currencies - Verify stock field names (unit_cost vs unit_price) 2. **Priority 2 (Important)** - Replace Record with specific types - Add validators matching backend - Document ProcessStage vs ProductionStage distinction 3. **Priority 3 (Nice to Have)** - Create shared enum definitions - Add JSDoc comments for all type fields - Implement Decimal wrapper for all monetary values - Create type guards for enum validation --- ## FILES FOR FURTHER REVIEW Backend schema files (for comparison): - `/home/user/bakery_ia/services/recipes/app/schemas/recipes.py` - `/home/user/bakery_ia/services/orders/app/schemas/order_schemas.py` - `/home/user/bakery_ia/services/production/app/schemas/quality_templates.py` - `/home/user/bakery_ia/services/suppliers/app/schemas/suppliers.py` - `/home/user/bakery_ia/services/suppliers/app/schemas/performance.py` - `/home/user/bakery_ia/services/inventory/app/schemas/inventory.py`