feat: global material override on OutputType for x-ray/clay render modes
- Add `material_override` nullable column on OutputType (DB migration) - When set, ALL product parts get rendered with this single material - Override applies after alias resolution in render_order_line task - Admin UI: dropdown in OutputType table to select a library material - Display: amber badge showing active override material name Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,6 +44,8 @@ class OutputType(Base):
|
||||
DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False
|
||||
)
|
||||
|
||||
material_override: Mapped[str | None] = mapped_column(String(200), nullable=True, default=None)
|
||||
|
||||
workflow_definition_id: Mapped[uuid.UUID | None] = mapped_column(
|
||||
UUID(as_uuid=True), ForeignKey("workflow_definitions.id", ondelete="SET NULL"), nullable=True
|
||||
)
|
||||
|
||||
@@ -17,6 +17,7 @@ class OutputTypeCreate(BaseModel):
|
||||
transparent_bg: bool = False
|
||||
pricing_tier_id: int | None = None
|
||||
cycles_device: str | None = None
|
||||
material_override: str | None = None
|
||||
|
||||
|
||||
class OutputTypePatch(BaseModel):
|
||||
@@ -34,6 +35,7 @@ class OutputTypePatch(BaseModel):
|
||||
pricing_tier_id: int | None = None
|
||||
cycles_device: str | None = None
|
||||
workflow_definition_id: uuid.UUID | None = None
|
||||
material_override: str | None = None
|
||||
|
||||
|
||||
class OutputTypeOut(BaseModel):
|
||||
@@ -54,6 +56,7 @@ class OutputTypeOut(BaseModel):
|
||||
price_per_item: float | None = None
|
||||
workflow_definition_id: uuid.UUID | None = None
|
||||
workflow_name: str | None = None
|
||||
material_override: str | None = None
|
||||
is_active: bool
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
Reference in New Issue
Block a user