blob: e3e5084624d6881834d97f43963b516180f46753 [file] [log] [blame]
@startuml
skinparam class {
BorderColor black
FontColor #50237f
BackgroundColor #f5f5f5
ArrowColor black
}
skinparam stereotype {
CBackgroundColor white
EBackgroundColor white
}
class ProcessPayload {
content-spec : String
device : Device
measurements : Measurements
part[0..1] : Part
process : Process
}
class Device {
deviceID : String
metaData[0..1] : <String, String>
operationalStatus[0..1] : String
}
class Part {
code[0..1] : String
metaData[0..1] : <String, String>
partID[0..1] : String
partTypeID[0..1] : String
result[0..1] : Result
type[0..1] : PartType
}
class Process {
externalProcessId[0..1] : String
metaData[0..1] : <String, String>
program[0..1] : Program
result[0..1] : Result
shutoffPhase[0..1] : String
shutoffValues[0..1] : ShutoffValues
ts : Date
}
class Measurement {
code[0..1] : String
limits[0..1] : LimitsList
name[0..1] : String
phase[0..1] ; String
result[0..1] : Result
series : Series
specialValues[0..1] : SpecialValues
ts : Date
}
class Program {
id : String
lastChangeDate[0..1] : Date
name[0..1] : String
}
class ShutoffValue {
lowerError[0..1] : Float
lowerWarn[0..1] : Float
target[0..1] : Float
ts[0..1] : Date
upperError[0..1] : Float
upperWarn[0..1] : Float
value : Float
}
class Series {
$_time[0..1] : [Integer]
<value>[0..*] : [Float]
}
abstract class Limits {
}
class LimitsSingle {
lowerError[0..1] : Float
lowerWarn[0..1] : Float
target[0..1] : Float
upperError[0..1] : Float
upperWarn[0..1] : Float
}
class LimitsList {
lowerError[0..1] : [Float]
lowerWarn[0..1] : [Float]
target[0..1] : [Float]
upperError[0..1] : [Float]
upperWarn[0..1] : [Float]
}
class SpecialValue {
$_time[0..1] : Integer
name[0..1] : String
value : <String, Float>
}
enum PartType {
SINGLE
BATCH
}
enum Result {
OK
NOK
UNKNOWN
}
ProcessPayload -- Device
ProcessPayload -- Part
ProcessPayload -- Process
ProcessPayload "1" o-- "0..*" Measurement : Measurements
Process -- Program
Process "1" *-- "0..*" ShutoffValue : ShutoffValues
Measurement -- Series
Measurement "1" *-- "0..*" Limits : LimitsList
Measurement "1" o-- "0..*" SpecialValue : SpecialValues
Limits <|-- LimitsSingle
Limits <|-- LimitsList
@enduml