Files
bakery-ia/services
Claude 79399294d5 feat: Add automatic template code generation to quality templates
BACKEND IMPLEMENTATION: Implemented template code auto-generation for quality
check templates following the proven pattern from orders and inventory services.

IMPLEMENTATION DETAILS:

**New Method: _generate_template_code()**
Location: services/production/app/services/quality_template_service.py:447-513

Format: TPL-{TYPE}-{SEQUENCE}
- TYPE: 2-letter prefix based on check_type
- SEQUENCE: Sequential 4-digit number per type per tenant
- Examples:
  - Product Quality → TPL-PQ-0001, TPL-PQ-0002, etc.
  - Process Hygiene → TPL-PH-0001, TPL-PH-0002, etc.
  - Equipment → TPL-EQ-0001
  - Safety → TPL-SA-0001
  - Cleaning → TPL-CL-0001
  - Temperature Control → TPL-TC-0001
  - Documentation → TPL-DC-0001

**Type Mapping:**
- product_quality → PQ
- process_hygiene → PH
- equipment → EQ
- safety → SA
- cleaning → CL
- temperature → TC
- documentation → DC
- Fallback: First 2 chars of template name or "TP"

**Generation Logic:**
1. Map check_type to 2-letter prefix
2. Query database for count of existing codes with same prefix
3. Increment sequence number (count + 1)
4. Format as TPL-{TYPE}-{SEQUENCE:04d}
5. Fallback to UUID-based code if any error occurs

**Integration:**
- Updated create_template() method (lines 42-50)
- Auto-generates template code ONLY if not provided
- Maintains support for custom codes from users
- Logs generation for audit trail

**Benefits:**
 Database-enforced uniqueness per tenant per type
 Meaningful codes grouped by quality check type
 Follows established pattern (orders, inventory)
 Thread-safe with async database context
 Graceful fallback to UUID on errors
 Full audit logging

**Technical Details:**
- Uses SQLAlchemy select with func.count for efficient counting
- Filters by tenant_id and template_code prefix
- Uses LIKE operator for prefix matching (TPL-{type}-%)
- Executed within service's async db session

**Testing Suggestions:**
1. Create template without code → should auto-generate
2. Create template with custom code → should use provided code
3. Create multiple templates of same type → should increment
4. Create templates of different types → separate sequences
5. Verify tenant isolation

This completes the quality template backend auto-generation,
matching the frontend changes in QualityTemplateWizard.tsx
2025-11-10 12:22:53 +00:00
..
2025-11-06 14:10:04 +01:00
2025-11-09 09:22:08 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 11:04:50 +01:00
2025-11-06 14:10:04 +01:00
2025-11-08 12:02:18 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 14:10:04 +01:00
2025-11-06 11:04:50 +01:00