28 lines
859 B
Python
28 lines
859 B
Python
|
|
"""Validated HTTP envelopes; definition validation belongs to the shared engine."""
|
||
|
|
from typing import Any, Literal, Optional
|
||
|
|
from pydantic import BaseModel, Field
|
||
|
|
|
||
|
|
|
||
|
|
class WorkflowDraft(BaseModel):
|
||
|
|
name: str = Field(min_length=1, max_length=160)
|
||
|
|
customer_id: Optional[str] = None
|
||
|
|
priority: int = Field(default=100, ge=0, le=100000)
|
||
|
|
definition: dict[str, Any]
|
||
|
|
|
||
|
|
|
||
|
|
class SimulationRequest(BaseModel):
|
||
|
|
version_id: Optional[int] = Field(default=None, gt=0)
|
||
|
|
context: dict[str, Any] = Field(default_factory=dict)
|
||
|
|
entity_type: Optional[Literal['case', 'time_entry']] = None
|
||
|
|
entity_id: Optional[int] = Field(default=None, gt=0)
|
||
|
|
|
||
|
|
|
||
|
|
class ActivationRequest(BaseModel):
|
||
|
|
version_id: int = Field(gt=0)
|
||
|
|
simulation_receipt: str
|
||
|
|
enabled: bool = True
|
||
|
|
|
||
|
|
|
||
|
|
class CopyRequest(BaseModel):
|
||
|
|
name: str = Field(min_length=1, max_length=160)
|