Files
HartOMat/backend/app/domains/products/schemas.py
T
Hartmut b87df4a3e5 refactor(B1): migrate to domain-driven project structure
Move all models/schemas/services/routers into app/domains/.
Keep backward-compat shims in old locations for imports.
Preserves domains/rendering/tasks.py from Phase A.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 16:24:11 +01:00

73 lines
2.1 KiB
Python

import uuid
from datetime import datetime
from pydantic import BaseModel
from app.domains.rendering.schemas import RenderPositionOut
class ProductCreate(BaseModel):
pim_id: str
name: str | None = None
category_key: str | None = None
ebene1: str | None = None
ebene2: str | None = None
baureihe: str | None = None
produkt_baureihe: str | None = None
lagertyp: str | None = None
name_cad_modell: str | None = None
gewuenschte_bildnummer: str | None = None
medias_rendering: bool | None = None
components: list[dict] = []
cad_part_materials: list[dict] = []
notes: str | None = None
is_active: bool = True
source_excel: str | None = None
class ProductPatch(BaseModel):
name: str | None = None
category_key: str | None = None
ebene1: str | None = None
ebene2: str | None = None
baureihe: str | None = None
produkt_baureihe: str | None = None
lagertyp: str | None = None
name_cad_modell: str | None = None
gewuenschte_bildnummer: str | None = None
medias_rendering: bool | None = None
components: list[dict] | None = None
cad_part_materials: list[dict] | None = None
notes: str | None = None
is_active: bool | None = None
class ProductOut(BaseModel):
id: uuid.UUID
pim_id: str
name: str | None
category_key: str | None
ebene1: str | None
ebene2: str | None
baureihe: str | None
produkt_baureihe: str | None
lagertyp: str | None
name_cad_modell: str | None
gewuenschte_bildnummer: str | None
medias_rendering: bool | None
components: list[dict]
cad_part_materials: list[dict]
cad_file_id: uuid.UUID | None
thumbnail_url: str | None = None
render_image_url: str | None = None
processing_status: str | None = None
stl_cached: list[str] = []
cad_parsed_objects: list[str] | None = None
arbeitspaket: str | None = None
notes: str | None
is_active: bool
source_excel: str | None
render_positions: list[RenderPositionOut] = []
created_at: datetime
updated_at: datetime
model_config = {"from_attributes": True}