Initial Plast Track MVP

This commit is contained in:
masterdev
2026-06-15 13:35:22 +01:00
commit 3bf4c622d8
47 changed files with 7339 additions and 0 deletions

59
backend/app/schemas.py Normal file
View File

@@ -0,0 +1,59 @@
from datetime import date, datetime
from pydantic import BaseModel, ConfigDict, Field
class MachineEventIn(BaseModel):
model_config = ConfigDict(extra="allow")
machine_id: str
event_type: str
timestamp: datetime
cycle_time_sec: float | None = None
source: str | None = "digital_input"
input_name: str | None = None
input_value: bool | int | str | None = None
class ProductionOrderCreate(BaseModel):
order_number: str
machine_id: int
article_ref: str
article_name: str
mold_ref: str | None = None
material_ref: str | None = None
planned_qty: int = Field(gt=0)
cavities: int = Field(default=1, gt=0)
theoretical_cycle_time_sec: float = Field(gt=0)
class DowntimeQualify(BaseModel):
reason_code: str
comment: str | None = None
qualified_by: str
class ScrapCreate(BaseModel):
machine_id: str
production_order_id: int | None = None
quantity: int = Field(gt=0)
reason_code: str
comment: str | None = None
operator_name: str
timestamp: datetime | None = None
class DailyOeeQuery(BaseModel):
date: date
class MachineConfigUpdate(BaseModel):
name: str | None = None
brand: str | None = None
model: str | None = None
is_active: bool | None = None
cycle_signal_edge: str | None = None
debounce_ms: int | None = Field(default=None, ge=0)
min_cycle_time_sec: int | None = Field(default=None, ge=1)
max_cycle_time_sec: int | None = Field(default=None, ge=1)
stop_detection_delay_sec: int | None = Field(default=None, ge=1)