Files
bakery-ia/FRONTEND_API_ANALYSIS_SUMMARY.md
Claude 020acc4691 docs: Add comprehensive frontend/backend API alignment analysis
Research findings for wizard improvements including:
- Backend model analysis for all 6 services (Recipe, Customer, Supplier, Inventory, Quality Template, Customer Order)
- Required vs optional fields identification
- Frontend API types and hooks alignment check
- Critical misalignment issues identified (PaymentTerms enum, API response types, field naming)
- UX research for advanced options implementation

This analysis supports the wizard enhancement effort to ensure proper field handling and identify areas for improvement.
2025-11-10 07:19:05 +00:00

8.0 KiB

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<STRING, ANY> OVERUSE

Multiple type definitions use Record<string, any> 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<string, any> 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