# generation_result.py ## Purpose Data model for image generation results. Consistent structure for results from any backend. ## Responsibilities - Encapsulate generation results (success/failure) - Store generated image and metadata - Validate result consistency - Provide factory methods for success/error results - Serialize to dictionary for logging ## Dependencies - `dataclasses` - Data class decorator - `PIL.Image` - Image type - Used by all backends and services ## Public Interface ### `GenerationResult` dataclass **Fields:** - `success: bool` - Success status (required) - `message: str` - Status/error message (required) - `image: Image` - Generated image (optional, required if success) - `generation_time: float` - Time in seconds (optional) - `saved_path: Path` - Save location (optional) - `metadata: dict` - Additional metadata (optional) - `timestamp: datetime` - Auto-populated **Properties:** - `is_successful: bool` - Alias for success - `has_image: bool` - True if image present - `is_saved: bool` - True if saved to disk **Factory Methods:** - `success_result(image, message, generation_time, **kwargs)` - Create success result - `error_result(message, **kwargs)` - Create error result **Usage:** ```python # Success result = GenerationResult.success_result( image=generated_image, message="Generated in 3.2s", generation_time=3.2 ) # Error result = GenerationResult.error_result( message="Backend not available" ) if result.is_successful: st.image(result.image) ``` ## Related Files - `models/generation_request.py` - Request model - All backends - Return results - All services - Process results