5.7 KiB
5.7 KiB
Production Service
Production planning and batch management service for the bakery management system.
Overview
The Production Service handles all production-related operations including:
- Production Planning: Calculate daily requirements using demand forecasts and inventory levels
- Batch Management: Track production batches from start to finish
- Capacity Management: Equipment, staff, and time scheduling
- Quality Control: Yield tracking, waste management, efficiency metrics
- Alert System: Comprehensive monitoring and notifications
Features
Core Capabilities
- Daily production requirements calculation
- Production batch lifecycle management
- Real-time capacity planning and utilization
- Quality control tracking and metrics
- Comprehensive alert system with multiple severity levels
- Integration with inventory, orders, recipes, and sales services
API Endpoints
Dashboard & Planning
GET /api/v1/tenants/{tenant_id}/production/dashboard-summary- Production dashboard dataGET /api/v1/tenants/{tenant_id}/production/daily-requirements- Daily production planningGET /api/v1/tenants/{tenant_id}/production/requirements- Requirements for procurement
Batch Management
POST /api/v1/tenants/{tenant_id}/production/batches- Create production batchGET /api/v1/tenants/{tenant_id}/production/batches/active- Get active batchesGET /api/v1/tenants/{tenant_id}/production/batches/{batch_id}- Get batch detailsPUT /api/v1/tenants/{tenant_id}/production/batches/{batch_id}/status- Update batch status
Scheduling & Capacity
GET /api/v1/tenants/{tenant_id}/production/schedule- Production scheduleGET /api/v1/tenants/{tenant_id}/production/capacity/status- Capacity status
Alerts & Monitoring
GET /api/v1/tenants/{tenant_id}/production/alerts- Production alertsPOST /api/v1/tenants/{tenant_id}/production/alerts/{alert_id}/acknowledge- Acknowledge alerts
Analytics
GET /api/v1/tenants/{tenant_id}/production/metrics/yield- Yield metrics
Service Integration
Shared Clients Used
- InventoryServiceClient: Stock levels, ingredient availability
- OrdersServiceClient: Demand requirements, customer orders
- RecipesServiceClient: Recipe requirements, ingredient calculations
- SalesServiceClient: Historical sales data
- NotificationServiceClient: Alert notifications
Authentication
Uses shared authentication patterns with tenant isolation:
- JWT token validation
- Tenant access verification
- User permission checks
Configuration
Key configuration options in app/core/config.py:
Production Planning
PLANNING_HORIZON_DAYS: Days ahead for planning (default: 7)PRODUCTION_BUFFER_PERCENTAGE: Safety buffer for production (default: 10%)MINIMUM_BATCH_SIZE: Minimum batch size (default: 1.0)MAXIMUM_BATCH_SIZE: Maximum batch size (default: 100.0)
Capacity Management
DEFAULT_WORKING_HOURS_PER_DAY: Standard working hours (default: 12)MAX_OVERTIME_HOURS: Maximum overtime allowed (default: 4)CAPACITY_UTILIZATION_TARGET: Target utilization (default: 85%)
Quality Control
MINIMUM_YIELD_PERCENTAGE: Minimum acceptable yield (default: 85%)QUALITY_SCORE_THRESHOLD: Minimum quality score (default: 8.0)
Alert Thresholds
CAPACITY_EXCEEDED_THRESHOLD: Capacity alert threshold (default: 100%)PRODUCTION_DELAY_THRESHOLD_MINUTES: Delay alert threshold (default: 60)LOW_YIELD_ALERT_THRESHOLD: Low yield alert (default: 80%)
Database Models
ProductionBatch
- Complete batch tracking from planning to completion
- Status management (pending, in_progress, completed, etc.)
- Cost tracking and yield calculations
- Quality metrics integration
ProductionSchedule
- Daily production scheduling
- Capacity planning and tracking
- Staff and equipment assignments
- Performance metrics
ProductionCapacity
- Resource availability tracking
- Equipment and staff capacity
- Maintenance scheduling
- Utilization monitoring
QualityCheck
- Quality control measurements
- Pass/fail tracking
- Defect recording
- Corrective action management
ProductionAlert
- Comprehensive alert system
- Multiple severity levels
- Action recommendations
- Resolution tracking
Alert System
Alert Types
- Capacity Exceeded: When production requirements exceed available capacity
- Production Delay: When batches are delayed beyond thresholds
- Cost Spike: When production costs exceed normal ranges
- Low Yield: When yield percentages fall below targets
- Quality Issues: When quality scores consistently decline
- Equipment Maintenance: When equipment needs maintenance
Severity Levels
- Critical: WhatsApp + Email + Dashboard + SMS
- High: WhatsApp + Email + Dashboard
- Medium: Email + Dashboard
- Low: Dashboard only
Development
Setup
# Install dependencies
pip install -r requirements.txt
# Set up database
# Configure DATABASE_URL environment variable
# Run migrations
alembic upgrade head
# Start service
uvicorn app.main:app --reload
Testing
# Run tests
pytest
# Run with coverage
pytest --cov=app
Docker
# Build image
docker build -t production-service .
# Run container
docker run -p 8000:8000 production-service
Deployment
The service is designed for containerized deployment with:
- Health checks at
/health - Structured logging
- Metrics collection
- Database migrations
- Service discovery integration
Architecture
Follows Domain-Driven Microservices Architecture:
- Clean separation of concerns
- Repository pattern for data access
- Service layer for business logic
- API layer for external interface
- Shared infrastructure for cross-cutting concerns