@startuml !define table(x) class x << (T,#FFAAAA) >> !define primary_key(x) x !define foreign_key(x) x hide methods hide stereotypes table(goals) { primary_key(id: Integer) uuid : String[36] name : String[63] display_name : String[63] efficacy_specification : JSONEncodedList, nullable created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(strategies) { primary_key(id: Integer) foreign_key(goal_id : Integer) uuid : String[36] name : String[63] display_name : String[63] parameters_spec : JSONEncodedDict, nullable created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(audit_templates) { primary_key(id: Integer) foreign_key("goal_id : Integer") foreign_key("strategy_id : Integer, nullable") uuid : String[36] name : String[63], nullable description : String[255], nullable scope : JSONEncodedList created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(audits) { primary_key(id: Integer) foreign_key("goal_id : Integer") foreign_key("strategy_id : Integer, nullable") uuid : String[36] audit_type : String[20] state : String[20], nullable interval : Integer, nullable parameters : JSONEncodedDict, nullable scope : JSONEncodedList, nullable created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(action_plans) { primary_key(id: Integer) foreign_key("audit_id : Integer, nullable") foreign_key("strategy_id : Integer") uuid : String[36] first_action_id : Integer state : String[20], nullable global_efficacy : JSONEncodedDict, nullable created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(actions) { primary_key(id: Integer) foreign_key("action_plan_id : Integer") uuid : String[36] action_type : String[255] input_parameters : JSONEncodedDict, nullable state : String[20], nullable next : String[36], nullable created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(efficacy_indicators) { primary_key(id: Integer) foreign_key("action_plan_id : Integer") uuid : String[36] name : String[63] description : String[255], nullable unit : String[63], nullable value : Numeric created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(scoring_engines) { primary_key(id: Integer) uuid : String[36] name : String[63] description : String[255], nullable metainfo : Text, nullable created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } table(service) { primary_key(id: Integer) name: String[255] host: String[255] last_seen_up: DateTime created_at : DateTime updated_at : DateTime deleted_at : DateTime deleted : Integer } "goals" <.. "strategies" : Foreign Key "goals" <.. "audit_templates" : Foreign Key "strategies" <.. "audit_templates" : Foreign Key "goals" <.. "audits" : Foreign Key "strategies" <.. "audits" : Foreign Key "action_plans" <.. "actions" : Foreign Key "action_plans" <.. "efficacy_indicators" : Foreign Key "strategies" <.. "action_plans" : Foreign Key "audits" <.. "action_plans" : Foreign Key @enduml