Files
xiaoxia-saas/packages/application/recipe/commands.py
T
Audit Bot f2e123a017
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
feat: 配方复用功能后端实现
- domain: Recipe/RecipeItem 实体
- ports: RecipeRepository Protocol
- adapters: SQLAlchemy RecipeRepository 实现 + ORM models
- application: 6个 UseCase (CRUD + Use) + Commands
- API: 6个端点 POST/GET/PATCH/DELETE /recipes + POST /recipes/{id}/use
- feature flag: recipe_reuse 仅 basic/premium 可用
- Alembic 迁移: recipes + recipe_items 表
- 单元测试: 覆盖所有 UseCase
2026-06-29 10:59:05 +08:00

37 lines
893 B
Python

"""Recipe commands."""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import List, Optional
@dataclass
class RecipeItemCommand:
item_type: str
item_id: str
position: int = 0
metadata_: dict = field(default_factory=dict)
@dataclass
class CreateRecipeCommand:
user_id: str
name: str
description: str = ""
template_id: str = ""
generation_params: dict = field(default_factory=dict)
items: List[RecipeItemCommand] = field(default_factory=list)
metadata_: dict = field(default_factory=dict)
@dataclass
class UpdateRecipeCommand:
recipe_id: str
user_id: str
name: Optional[str] = None
description: Optional[str] = None
template_id: Optional[str] = None
generation_params: Optional[dict] = None
items: Optional[List[RecipeItemCommand]] = None
metadata_: Optional[dict] = None