| @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 |