You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
|
|
|
|
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional, Union
|
|
from uuid import UUID
|
|
|
|
from pydantic import Field
|
|
from src.models import DefultBase
|
|
|
|
|
|
class CalculationTimeConstrainsBase(DefultBase):
|
|
pass
|
|
|
|
|
|
class ReferenceLinkBase(DefultBase):
|
|
reference_id: str = Field(..., description="Reference ID")
|
|
overhaul_reference_type: str = Field(...,
|
|
description="Overhaul reference type")
|
|
|
|
|
|
class CalculationTimeConstrainsParametersRetrive(CalculationTimeConstrainsBase):
|
|
# type: ignore
|
|
costPerFailure: Union[dict,
|
|
float] = Field(..., description="Cost per failure")
|
|
availableScopes: List[str] = Field(..., description="Available scopes")
|
|
recommendedScope: str = Field(..., description="Recommended scope")
|
|
# historicalData: Dict[str, Any] = Field(..., description="Historical data")
|
|
|
|
|
|
class CalculationTimeConstrainsParametersRead(CalculationTimeConstrainsBase):
|
|
costPerFailure: Union[dict,
|
|
float] = Field(..., description="Cost per failure")
|
|
overhaulCost: Optional[float] = Field(None, description="Overhaul cost")
|
|
reference: Optional[List[ReferenceLinkBase]] = Field(
|
|
None, description="Reference")
|
|
|
|
|
|
class CalculationTimeConstrainsParametersCreate(CalculationTimeConstrainsBase):
|
|
overhaulCost: float = Field(..., description="Overhaul cost")
|
|
scopeOH: Optional[str] = Field(None, description="Scope OH")
|
|
assetnum: Optional[str] = Field(None, description="Assetnum")
|
|
costPerFailure: float = Field(..., description="Cost per failure")
|
|
|
|
|
|
# class CalculationTimeConstrainsCreate(CalculationTimeConstrainsBase):
|
|
# overhaulCost: float = Field(..., description="Overhaul cost")
|
|
# scopeOH: str = Field(..., description="Scope OH")
|
|
# costPerFailure: float = Field(..., description="Cost per failure")
|
|
# metadata: Dict[str, Any] = Field(..., description="Metadata")
|
|
|
|
class CalculationResultsRead(CalculationTimeConstrainsBase):
|
|
day: int
|
|
corrective_cost: float
|
|
overhaul_cost: float
|
|
num_failures: int
|
|
|
|
|
|
class CalculationTimeConstrainsRead(CalculationTimeConstrainsBase):
|
|
id: Union[UUID, str]
|
|
results: List[CalculationResultsRead]
|
|
|
|
|
|
class CalculationTimeConstrainsSimulationRead(CalculationTimeConstrainsBase):
|
|
simulation: Dict[str, Any]
|
|
comparison: Dict[str, Any]
|