Initial Plast Track MVP
This commit is contained in:
59
backend/app/schemas.py
Normal file
59
backend/app/schemas.py
Normal 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)
|
||||
Reference in New Issue
Block a user