refactor(P11+P12): codebase hygiene — CLAUDE.md rewrite, type safety, dead code removal
- Rewrite CLAUDE.md to match current 8-service architecture (was 11, 5 deleted) - Remove all as-any casts in OrderDetail.tsx (9 casts → 0) - Add cad_parsed_objects/cad_part_materials to OrderItem interface - Rename require_admin → require_global_admin across 6 router files (22 calls) - Remove EXPORT_GLB_PRODUCTION enum + generate_gltf_production_task (dead code) - Remove worker-thumbnail from ALLOWED_SERVICES, replace Flamenco link - Delete obsolete PLAN.md (1455 lines) and PLAN_REFACTOR.md (1174 lines) - Fix digit-only USD prim names with p_ prefix Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.database import get_db
|
||||
from app.domains.auth.models import User
|
||||
from app.utils.auth import get_current_user, require_admin, require_admin_or_pm, require_pm_or_above
|
||||
from app.utils.auth import get_current_user, require_global_admin, require_admin_or_pm, require_pm_or_above
|
||||
from app.domains.rendering.models import WorkflowDefinition, WorkflowRun
|
||||
from app.domains.rendering.schemas import (
|
||||
WorkflowDefinitionCreate,
|
||||
@@ -52,7 +52,6 @@ _STEP_CATEGORIES: dict[StepName, StepCategory] = {
|
||||
StepName.BLENDER_TURNTABLE: "rendering",
|
||||
StepName.OUTPUT_SAVE: "output",
|
||||
StepName.EXPORT_GLB_GEOMETRY: "output",
|
||||
StepName.EXPORT_GLB_PRODUCTION: "output",
|
||||
StepName.EXPORT_BLEND: "output",
|
||||
StepName.STL_CACHE_GENERATE: "processing",
|
||||
StepName.NOTIFY: "output",
|
||||
@@ -74,7 +73,6 @@ _STEP_DESCRIPTIONS: dict[StepName, str] = {
|
||||
StepName.BLENDER_TURNTABLE: "Render all turntable animation frames via Blender HTTP micro-service",
|
||||
StepName.OUTPUT_SAVE: "Upload the rendered output file to storage and create a MediaAsset record",
|
||||
StepName.EXPORT_GLB_GEOMETRY: "Export a geometry-only GLB for the 3-D viewer (no materials)",
|
||||
StepName.EXPORT_GLB_PRODUCTION: "Export a production GLB with full materials from the .blend template",
|
||||
StepName.EXPORT_BLEND: "Save the production .blend file as a downloadable MediaAsset",
|
||||
StepName.STL_CACHE_GENERATE: "Convert STEP → STL (low + high quality) and cache next to the STEP file",
|
||||
StepName.NOTIFY: "Emit a user notification via the audit-log notification channel",
|
||||
@@ -140,7 +138,7 @@ async def get_workflow(
|
||||
@router.post("", response_model=WorkflowDefinitionOut, status_code=201)
|
||||
async def create_workflow(
|
||||
body: WorkflowDefinitionCreate,
|
||||
_user: User = Depends(require_admin),
|
||||
_user: User = Depends(require_global_admin),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
if body.config:
|
||||
@@ -164,7 +162,7 @@ async def create_workflow(
|
||||
async def update_workflow(
|
||||
workflow_id: uuid.UUID,
|
||||
body: WorkflowDefinitionUpdate,
|
||||
_user: User = Depends(require_admin),
|
||||
_user: User = Depends(require_global_admin),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
result = await db.execute(
|
||||
@@ -193,7 +191,7 @@ async def update_workflow(
|
||||
@router.delete("/{workflow_id}", status_code=204)
|
||||
async def delete_workflow(
|
||||
workflow_id: uuid.UUID,
|
||||
_user: User = Depends(require_admin),
|
||||
_user: User = Depends(require_global_admin),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
result = await db.execute(
|
||||
|
||||
Reference in New Issue
Block a user